US20030084309A1 - Stream processor with cryptographic co-processor - Google Patents
Stream processor with cryptographic co-processor Download PDFInfo
- Publication number
- US20030084309A1 US20030084309A1 US10/273,718 US27371802A US2003084309A1 US 20030084309 A1 US20030084309 A1 US 20030084309A1 US 27371802 A US27371802 A US 27371802A US 2003084309 A1 US2003084309 A1 US 2003084309A1
- Authority
- US
- United States
- Prior art keywords
- cryptographic
- processor
- crypto
- instruction
- unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
- 238000012545 processing Methods 0.000 claims abstract description 48
- 238000000034 method Methods 0.000 claims description 33
- 230000006870 function Effects 0.000 claims description 13
- 230000002093 peripheral effect Effects 0.000 description 19
- 238000010586 diagram Methods 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 1
- 230000003116 impacting effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3206—Monitoring of events, devices or parameters that trigger a change in power modality
- G06F1/3215—Monitoring of peripheral devices
- G06F1/3225—Monitoring of peripheral devices of memory devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/325—Power saving in peripheral device
- G06F1/3275—Power saving in memory, e.g. RAM, cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
- G06F11/108—Parity data distribution in semiconductor storages, e.g. in SSD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0813—Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/084—Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1689—Synchronisation and timing concerns
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17356—Indirect interconnection networks
- G06F15/17368—Indirect interconnection networks non hierarchical topologies
- G06F15/17375—One dimensional, e.g. linear array, ring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7839—Architectures of general purpose stored program computers comprising a single central processing unit with memory
- G06F15/7842—Architectures of general purpose stored program computers comprising a single central processing unit with memory on one IC chip (single chip microcontrollers)
- G06F15/7846—On-chip cache and off-chip main memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/72—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/14—Digital output to display device ; Cooperation and interconnection of the display device with other functional units
- G06F3/1423—Digital output to display device ; Cooperation and interconnection of the display device with other functional units controlling a plurality of local displays, e.g. CRT and flat panel display
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30043—LOAD or STORE instructions; Clear instruction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3851—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3877—Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
- G06F9/3879—Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor for non-native instruction execution, e.g. executing a command; for Java instruction set
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
- G06F9/3889—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute
- G06F9/3891—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute organised in groups of units sharing resources, e.g. clusters
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/4074—Power supply or voltage generation circuits, e.g. bias voltage generators, substrate voltage generators, back-up power, power control circuits
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2441—Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9057—Arrangements for supporting packet reassembly or resequencing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9084—Reactions to storage capacity overflow
- H04L49/9089—Reactions to storage capacity overflow replacing packets in a storage arrangement, e.g. pushout
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2352/00—Parallel handling of streams of display data
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2360/00—Aspects of the architecture of display systems
- G09G2360/12—Frame memory handling
- G09G2360/121—Frame memory handling using a cache memory
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2370/00—Aspects of data communication
- G09G2370/02—Networking aspects
- G09G2370/022—Centralised management of display operation, e.g. in a server instead of locally
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2370/00—Aspects of data communication
- G09G2370/20—Details of the management of multiple sources of image data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Definitions
- the present invention relates generally to microprocessors, and more particularly, to microprocessors that include a cryptographic co-processor within the microprocessor die.
- Server computers process all sorts of data transactions.
- One common type of data transaction is an encrypted data transaction that typically requires the server to perform at least one of an encryption function and a decryption function.
- FIG. 1 shows a typical server 102 and client computer 110 that are linked by a network 104 , such as the Internet or other network.
- FIG. 2 is a high-level block diagram of a typical server 102 .
- the server 102 includes a processor 202 , ROM 204 , and RAM 206 , each connected by a peripheral bus system 208 .
- the peripheral bus system 208 may include one or more buses connected to each other through various bridges, controllers and/or adapters, such as are well known in the art.
- the peripheral bus system 208 may include a “system bus” that is connected through an adapter to one or more expansion buses, such as a Peripheral Component Interconnect (PCI) bus.
- PCI Peripheral Component Interconnect
- a mass storage device 210 Also coupled to the peripheral bus system 208 are a mass storage device 210 , a network interface 212 , a number (N) of input/output (I/O) devices 216 - 1 through 216 -N and a peripheral cryptographic processor 220 .
- a mass storage device 210 Also coupled to the peripheral bus system 208 are a mass storage device 210 , a network interface 212 , a number (N) of input/output (I/O) devices 216 - 1 through 216 -N and a peripheral cryptographic processor 220 .
- I/O input/output
- I/O devices 216 - 1 through 216 -N may include, for example, a keyboard, a pointing device, a display device and/or other conventional I/O devices.
- Mass storage device 210 may include any suitable device for storing large volumes of data, such as a magnetic disk or tape, magneto-optical (MO) storage device, or any of various types of Digital Versatile Disk (DVD) or Compact Disk (CD) based storage.
- DVD Digital Versatile Disk
- CD Compact Disk
- the peripheral cryptographic processor 220 (i.e., crypto-processor) is linked to the processor 202 by the peripheral bus system 208 .
- the crypto-processor 220 performs encryption and decryption operations that may be necessary for encrypted data transactions such as between the server 102 and the client 110 .
- the crypto-processor 220 can also be external to the server 102 and linked to the processor 202 by one of the I/O devices 216 - 1 through 216 -N.
- Network interface 212 provides data communication between the computer system and other computer systems on the network 104 .
- network interface 212 may be any device suitable for or enabling the server 102 to communicate data with a remote processing system (e.g., client computer 110 ) over a data communication link, such as a conventional telephone modem, an Integrated Services Digital Network (ISDN) adapter, a Digital Subscriber Line (DSL) adapter, a cable modem, a satellite transceiver, an Ethernet adapter, or the like.
- ISDN Integrated Services Digital Network
- DSL Digital Subscriber Line
- the processor 202 can operate at clock speeds of up to or more than 1 GHz.
- the peripheral bus system 208 typically operates at a substantially slower speed such as about 166 MHz or similar.
- the crypto-processor 220 typically operates at a speed similar to the peripheral bus system 208 . This is because the crypto-processor 220 cannot process data any faster than the data can be transported across the peripheral bus system 208 .
- the crypto-processor 220 is typically a customized, specialized processor (i.e.
- ASIC application specific integrated circuit
- FIG. 3 is a flowchart diagram of the method operations 300 of a typical encrypted data transaction within the server 102 .
- the encrypted data transaction can be any data transaction that required encryption, decryption or both encryption and decryption such as an e-commerce transaction between the server 102 and the client computer 110 .
- data is received in the server 102 such as from the client computer 110 or because of a request by the client computer 110 .
- the received data is analyzed to determine if the received data is encrypted.
- the data may be encrypted because the data includes a user's personal and/or financial data or other data that is transported during an encrypted session such as SSL (secure sockets layer) or other encryption methods.
- SSL secure sockets layer
- the received data is found to not be encrypted data, in operation 310 , then the received data is processed as described in operation 330 below. Alternatively, if, in operation 310 , the received data is determined to be encrypted data, then, in operation 315 , the encrypted data is sent to the peripheral crypto processor 220 via the peripheral bus system 208 .
- the crypto processor 220 decrypts the encrypted data.
- the crypto processor 220 outputs the decrypted data to the processor 202 via the peripheral bus system 208 .
- the processor 202 processes the data to produce result data.
- the result data is analyzed to determine if the result data should be encrypted. If the result data does not require encryption, then the processor outputs the result data to the client 110 , in operation 340 , and the method operations end. Alternatively, if, in operation 335 , the result data required encryption, then in operation 345 , the processor outputs the result data to the crypto-processor via the peripheral bus system 208 .
- the crypto processor 220 encrypts the result data.
- the crypto processor 220 outputs the encrypted result data to the processor 202 via the peripheral bus system 208 .
- the processor outputs the encrypted result data to the client 110 and the method operations end.
- Transferring the data to be encrypted, decrypted or processed between the crypto processor 220 and the processor 202 is very slow. Further, the slower processing speed of the crypto processor 220 also limits the rate at which the data is encrypted or decrypted. Further, if a large volume of data such as streaming data (e.g., streaming audio, streaming video, etc.) is being encrypted and/or decrypted then the rate the server 102 can serve the streaming data is limited by the rate at which the streaming data can be encrypted and/or decrypted.
- streaming data e.g., streaming audio, streaming video, etc.
- the multiple transfers of the streaming data between the crypto processor 220 and the processor 202 can dominate the usage of the peripheral bus system 208 and the I/O systems inside the crypto processor 220 and the processor 202 , thereby limiting further the ability of the processor 202 to perform any functions other than transferring data to and from the crypto processor 220 .
- the present invention fills these needs by a system and method for increased and/or more efficient data encryption and decryption process speeds. It should be appreciated that the present invention can be implemented in numerous ways, including as a process, an apparatus, a system, computer readable media, or a device. Several inventive embodiments of the present invention are described below.
- One embodiment includes a microprocessor includes a first processing core, a first cryptographic co-processor and an integer multiplier unit that is coupled to the first processing core and the cryptographic co-processor.
- the first processing core includes an instruction decode unit, an instruction execution unit, a load/store unit.
- the first cryptographic co-processor is located on a first die with the first processing core.
- the cryptographic co-processor includes a cryptographic control register, a direct memory access engine that is coupled to the load/store unit in the first processing core and a cryptographic memory.
- the integer multiplier unit can be included within the first processing core or within the first cryptographic co-processor.
- the cryptographic memory is at least large enough to perform a Montgomery multiplication function.
- the integer multiplier unit is a 64-bit ⁇ 64-bit multiplier unit.
- the load/store unit can be coupled to a main memory system hierarchy.
- the first processing core is coupled to a second processing core by a processor crossbar.
- the second processing core is coupled to a second cryptographic coprocessor that is located on a second die with the second processing core.
- the second processing core and the second cryptographic co-processor can be located on the first die.
- the first cryptographic co-processor can be coupled to the instruction decoder unit.
- the first cryptographic co-processor and the first processing core share the integer multiplier unit.
- the direct memory access engine can be coupled to the load/store unit by a 64 bit data bus.
- the cryptographic control register can include data that identifies a type of cryptographic instruction received in the first cryptographic co-processor.
- One alternative embodiment includes a method of executing a cryptographic command.
- a cryptographic instruction is received in an load store unit in a processing core on a first die.
- the cryptographic instruction is analyzed to determine if the cryptographic instruction is a crypto store instruction. If the cryptographic instruction is a crypto store instruction, then a source operand of the crypto store instruction is stored in a crypto control register in a cryptographic co-processor on the first die.
- the source operand is analyzed to determine if the source operand identifies a corresponding crypto command. If the source operand identifies the corresponding crypto command, the corresponding crypto command is executed.
- the cryptographic co-processor can also send an interrupt to an instruction execution unit that is included in the processing core such as when execution of a crypto command is completed.
- a result of the cryptographic instruction can also be output to a memory system using a load store unit that is included in the processing core.
- Execution of the cryptographic instruction in the cryptographic co-processor can also include accessing data through the load store unit.
- the cryptographic co-processor can also include a direct memory access engine. Accessing data can also include loading and storing data in a main memory.
- Executing the cryptographic instruction in the cryptographic co-processor can also include executing a multiplication function.
- the cryptographic co-processor can include an integer multiplier unit for executing the multiplication function.
- the various embodiments of the present invention provide the ability for a crypto processor to rapidly encrypt and/or decrypt data, such as streaming data, at rates much greater than possible by a prior art crypto processor.
- FIG. 1 shows a typical server and client computer that are linked by a network, such as the Internet or other network.
- FIG. 2 is a high-level block diagram of a typical server.
- FIG. 3 is a flowchart diagram of the method operations of a typical encrypted data transaction within the server.
- FIG. 4 shows a single CPU die (chip) in accordance with one embodiment of the present invention.
- FIG. 5 shows a detailed view of the processor core and cryptographic coprocessor in accordance with one embodiment of the present invention.
- FIG. 6 is a flowchart 600 of the method operations of the paired processor 410 and crypto co-processor 420 according to one embodiment of the present invention.
- FIG. 4 shows a single CPU die (chip) 400 in accordance with one embodiment of the present invention.
- the CPU chip 400 includes a processing core 410 .
- the processing core 410 is paired with a cryptographic co-processor 420 .
- the cryptographic co-processor 420 is optimized to minimize the amount of hardware added to the CPU die 400 .
- the CPU die 400 can also include additional processing cores 410 n and each of the additional processing cores 410 n is also paired with a cryptographic co-processor 420 n .
- the processing cores 410 , 410 n are electrically coupled by a processor crossbar 430 .
- the processor crossbar 430 is a data bus system that provides a common data communication link between the processing cores 410 , 410 n and other common devices that may be accessed by the processing cores 410 , 410 n such as memory systems and input/output (I/O) systems.
- FIG. 5 shows a detailed view of the processor core 410 and cryptographic coprocessor 420 in accordance with one embodiment of the present invention.
- the processor core 410 includes an instruction decode/trap handler unit 504 , an instruction execution unit 506 , a load store unit 508 and an integer multiplier unit 514 .
- An instruction cache 502 is coupled to the input of the instruction decode/trap handler unit 504 .
- a data cache 520 is coupled to the load store unit 508 .
- the data cache 520 and the instruction cache 502 are also coupled to the processor crossbar 430 .
- the data cache 520 can be a level-1 cache and can be between about 4 kb and about 64 kb in size.
- the crypto-coprocessor 420 includes a crypto control register 510 , a crypto memory 516 , a DMA engine 518 and the crypto co-processor core 512 .
- the crypto control register 510 stores the settings of the crypto co-processor 420 .
- the settings can include identifying the type of encryption or decryption command or operation to be performed.
- the types of encryption or decryption command can include any of the encryption and decryption schemes known in the art.
- the crypto control register 510 also stores the status of the current crypto operations and is accessible by the processor 410 so that the processor 410 can check the status of the current crypto operations.
- the crypto control register 510 is linked to the load store unit 508 by a logical link 530 , which represents the bi-directional interchange of data between the load store unit 508 and the crypto control register 510 .
- the DMA engine 518 is coupled to the load store unit 508 by a crypto bus 522 .
- the DMA engine 518 provides more direct access to the memory system hierarchy, such as the main memory, the data cache 520 and a level-2 cache, that can be accessed via the load store unit 508 and, if necessary, the processor crossbar 430 .
- the crypto bus 522 can be as wide as feasible to enable rapid data transfer between the crypto coprocessor 420 and the processing core 410 .
- the crypto bus 522 is a 64-bit bus.
- the crypto memory 516 is sufficiently large enough to hold the operands and results for a particular crypto operation.
- the crypto memory 516 is about 1.3 KB, which is large enough for a modular exponentiation on 2048-bit keys.
- the integer multiplier unit 514 is included within the crypto processor core 512 but directly accessible by the processor core 410 by a logical link 532 .
- the integer multiplier unit 514 can be part of the processor core 410 as long as the crypto processor core 512 can directly access the integer multiplier unit 514 .
- the crypto processor core 512 and the processor core 410 can share the integer multiplier unit 514 so as to reduce the space used (i.e., number of devices required) on the die.
- Typical, prior art crypto processors were not included on the die 400 with the processor core because the crypto processors consumed too much valuable space on the die that was needed more for the processor core.
- the integer multiplier unit 514 performs the modular multiply and modular exponentiation functions.
- the processor core 410 only uses the integer multiplier unit 514 about 2-5% of the time. Therefore the crypto processor 420 can use the integer multiplier 514 about 95-98% of the time without impacting operations within the processor core 410 . Moving the integer multiplier unit 514 into the crypto processor 420 further streamlines the crypto functions of the integer multiplier unit 514 .
- the integer multiplier unit 514 is capable of performing modular arithmetic such as Montgomery multiply functions and exponentiation.
- a Montgomery multiply function is a technique for performing modular multiplication on a large integer (e.g. a 2048 bit number) using two multiplications rather than a multiplication and a division.
- the integer multiplier unit 514 can be a 64-bit ⁇ 64-bit integer multiplier unit.
- a 64 bit ⁇ 64-bit integer multiplication unit can directly access operands that are stored in the crypto memory 516 rather than flooding the crypto bus 522 and the load store unit 508 every clock cycle.
- FIG. 6 is a flowchart 600 of the method operations of the paired processor 410 and crypto co-processor 420 according to one embodiment of the present invention.
- the instruction cache 502 temporarily stores the next instruction to be executed in the processor core 410 .
- the next instruction is received in the instruction decode/trap handler unit 504 from the instruction cache 502 .
- the received instruction is forwarded to the instruction execution unit 506 for execution in operation 610 .
- the instruction execution unit 506 analyzes the received instruction to determine if the received instruction is a load or a store instruction in operation 615 .
- the instruction is executed as required in the various stages 504 , 506 , 508 of the processor core 410 as necessary to complete execution of the non-load/non-store instruction, in operation 620 and the method operations on the executed instruction result ends.
- the received instruction is a load instruction or a store instruction
- the received instruction is forwarded to the load store unit 508 in operation 630 .
- the load store unit 508 analyzes the received instruction to determine if the received instruction is a crypto load instruction or a crypto store instruction.
- the non-crypto store instruction/non-crypto load instruction is executed in the load store unit 508 (i.e., the prescribed load or store function is performed) in operation 640 and the method operations for that instruction ends.
- the crypto load or crypto store instruction is analyzed in operation 650 .
- the load/store unit 508 transfers the data from the crypto co-processor 420 back to the processor 410 , in operation 655 and the method operations for the instruction end.
- the load/store unit 508 transfers a source operand of the crypto store instruction to the crypto control register 510 in operation 660 .
- the crypto co-processor 420 analyzes the data in the crypto control registers 510 to determine if the stored data identifies a corresponding crypto command. If the data does not identify a corresponding crypto command, the method operations for the instruction end.
- the crypto coprocessor 420 can send an interrupt to the instruction execution unit 506 in the processor core 410 via the logical link 534 , in operation 670 and the method operations for the crypto command ends.
- Some crypto command can also cause data in the crypto memory 516 to be output to the memory system via the load store unit 508 .
- some crypto commands will cause data in the memory system to be loaded into the crypto memory via the load store unit 508 .
- the crypto co-processor 420 can process data independent of the processor core 410 for multiple and even thousands of clock cycles. Pairing the crypto processor 420 with the processing core 410 on the same die 400 increases the speed of the encryption and/or decryption processes by operating the crypto processor 420 and the processing core 410 at the same clock speed. The speed of the encryption and/or decryption processes is also increased because the data (e.g., data stream) to be encrypted and/or decrypted is not required to be transmitted the relatively long distance between the crypto processor 220 and the processor 202 , at the much slower speed across the peripheral bus 208 such as described in FIG. 2 above.
- the data e.g., data stream
- the pairing the crypto processor 420 with the processing core 410 allows the crypto processor 420 to directly access the memory system hierarchy through the crypto processor's 420 DMA engine 518 and the load store unit 508 .
- This direct memory access allows the crypto processor 420 to rapidly encrypt and/or decrypt streaming data at rates much greater than possible by a peripheral crypto processor 220 shown in FIG. 2 above.
- the term “about” means +/ ⁇ 10%.
- the phrase “about 250” indicates a range of between 225 and 275.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Computer Security & Cryptography (AREA)
- Multimedia (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Multi Processors (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Power Sources (AREA)
- Hardware Redundancy (AREA)
- Advance Control (AREA)
- Microcomputers (AREA)
- Information Transfer Systems (AREA)
- Communication Control (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Steering Control In Accordance With Driving Conditions (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Exchange Systems With Centralized Control (AREA)
- Storage Device Security (AREA)
Abstract
A microprocessor includes a first processing core, a first cryptographic coprocessor and an integer multiplier unit that is coupled to the first processing core and the first cryptographic co-processor. The first processing core includes an instruction decode unit, an instruction execution unit, a load/store unit. The first cryptographic coprocessor is located on a first die with the first processing core. The first cryptographic co-processor includes a cryptographic control register, a direct memory access engine that is coupled to the load/store unit in the first processing core and a cryptographic memory.
Description
- This application claims priority from U.S. Provisional Patent Application No. 60/345,315 filed on Oct. 22, 2001 and entitled “High Performance Web Server,” which is incorporated herein by reference in its entirety for all purposes.
- 1. Field of the Invention
- The present invention relates generally to microprocessors, and more particularly, to microprocessors that include a cryptographic co-processor within the microprocessor die.
- 2. Description of the Related Art
- Server computers (i.e., servers) process all sorts of data transactions. One common type of data transaction is an encrypted data transaction that typically requires the server to perform at least one of an encryption function and a decryption function. FIG. 1 shows a
typical server 102 andclient computer 110 that are linked by anetwork 104, such as the Internet or other network. - FIG. 2 is a high-level block diagram of a
typical server 102. As shown, theserver 102 includes aprocessor 202,ROM 204, andRAM 206, each connected by aperipheral bus system 208. Theperipheral bus system 208 may include one or more buses connected to each other through various bridges, controllers and/or adapters, such as are well known in the art. For example, theperipheral bus system 208 may include a “system bus” that is connected through an adapter to one or more expansion buses, such as a Peripheral Component Interconnect (PCI) bus. Also coupled to theperipheral bus system 208 are amass storage device 210, anetwork interface 212, a number (N) of input/output (I/O) devices 216-1 through 216-N and a peripheralcryptographic processor 220. - I/O devices216-1 through 216-N may include, for example, a keyboard, a pointing device, a display device and/or other conventional I/O devices.
Mass storage device 210 may include any suitable device for storing large volumes of data, such as a magnetic disk or tape, magneto-optical (MO) storage device, or any of various types of Digital Versatile Disk (DVD) or Compact Disk (CD) based storage. - The peripheral cryptographic processor220 (i.e., crypto-processor) is linked to the
processor 202 by theperipheral bus system 208. The crypto-processor 220 performs encryption and decryption operations that may be necessary for encrypted data transactions such as between theserver 102 and theclient 110. In some servers the crypto-processor 220 can also be external to theserver 102 and linked to theprocessor 202 by one of the I/O devices 216-1 through 216-N. -
Network interface 212 provides data communication between the computer system and other computer systems on thenetwork 104. Hence,network interface 212 may be any device suitable for or enabling theserver 102 to communicate data with a remote processing system (e.g., client computer 110) over a data communication link, such as a conventional telephone modem, an Integrated Services Digital Network (ISDN) adapter, a Digital Subscriber Line (DSL) adapter, a cable modem, a satellite transceiver, an Ethernet adapter, or the like. - Typically the
processor 202 can operate at clock speeds of up to or more than 1 GHz. Conversely, theperipheral bus system 208 typically operates at a substantially slower speed such as about 166 MHz or similar. Further, the crypto-processor 220 typically operates at a speed similar to theperipheral bus system 208. This is because the crypto-processor 220 cannot process data any faster than the data can be transported across theperipheral bus system 208. Further, the crypto-processor 220 is typically a customized, specialized processor (i.e. an application specific integrated circuit (ASIC)) that may not be made by the latest, highest performance manufacturing technologies and therefore the maximum processing speed (i.e., the crypto-processor clock speed) of the crypto-processor 220 is substantially less than the maximum processing speed of theprocessor 202. - FIG. 3 is a flowchart diagram of the
method operations 300 of a typical encrypted data transaction within theserver 102. The encrypted data transaction can be any data transaction that required encryption, decryption or both encryption and decryption such as an e-commerce transaction between theserver 102 and theclient computer 110. Inoperation 305, data is received in theserver 102 such as from theclient computer 110 or because of a request by theclient computer 110. - In
operation 310, the received data is analyzed to determine if the received data is encrypted. For example, the data may be encrypted because the data includes a user's personal and/or financial data or other data that is transported during an encrypted session such as SSL (secure sockets layer) or other encryption methods. - If the received data is found to not be encrypted data, in
operation 310, then the received data is processed as described inoperation 330 below. Alternatively, if, inoperation 310, the received data is determined to be encrypted data, then, inoperation 315, the encrypted data is sent to theperipheral crypto processor 220 via theperipheral bus system 208. - In
operation 320, thecrypto processor 220 decrypts the encrypted data. Inoperation 325, thecrypto processor 220 outputs the decrypted data to theprocessor 202 via theperipheral bus system 208. Inoperation 330, theprocessor 202 processes the data to produce result data. - In
operation 335, the result data is analyzed to determine if the result data should be encrypted. If the result data does not require encryption, then the processor outputs the result data to theclient 110, inoperation 340, and the method operations end. Alternatively, if, inoperation 335, the result data required encryption, then inoperation 345, the processor outputs the result data to the crypto-processor via theperipheral bus system 208. - In
operation 350, thecrypto processor 220 encrypts the result data. Inoperation 355, thecrypto processor 220 outputs the encrypted result data to theprocessor 202 via theperipheral bus system 208. Inoperation 360, the processor outputs the encrypted result data to theclient 110 and the method operations end. - Transferring the data to be encrypted, decrypted or processed between the
crypto processor 220 and theprocessor 202 is very slow. Further, the slower processing speed of thecrypto processor 220 also limits the rate at which the data is encrypted or decrypted. Further, if a large volume of data such as streaming data (e.g., streaming audio, streaming video, etc.) is being encrypted and/or decrypted then the rate theserver 102 can serve the streaming data is limited by the rate at which the streaming data can be encrypted and/or decrypted. Further still, the multiple transfers of the streaming data between thecrypto processor 220 and theprocessor 202 can dominate the usage of theperipheral bus system 208 and the I/O systems inside thecrypto processor 220 and theprocessor 202, thereby limiting further the ability of theprocessor 202 to perform any functions other than transferring data to and from thecrypto processor 220. - In view of the foregoing, there is a need for a system and method for increased and/or more efficient data encryption and decryption process speeds.
- Broadly speaking, the present invention fills these needs by a system and method for increased and/or more efficient data encryption and decryption process speeds. It should be appreciated that the present invention can be implemented in numerous ways, including as a process, an apparatus, a system, computer readable media, or a device. Several inventive embodiments of the present invention are described below.
- One embodiment includes a microprocessor includes a first processing core, a first cryptographic co-processor and an integer multiplier unit that is coupled to the first processing core and the cryptographic co-processor. The first processing core includes an instruction decode unit, an instruction execution unit, a load/store unit. The first cryptographic co-processor is located on a first die with the first processing core. The cryptographic co-processor includes a cryptographic control register, a direct memory access engine that is coupled to the load/store unit in the first processing core and a cryptographic memory.
- The integer multiplier unit can be included within the first processing core or within the first cryptographic co-processor.
- The cryptographic memory is at least large enough to perform a Montgomery multiplication function.
- In one embodiment, the integer multiplier unit is a 64-bit×64-bit multiplier unit.
- The load/store unit can be coupled to a main memory system hierarchy.
- The first processing core is coupled to a second processing core by a processor crossbar. The second processing core is coupled to a second cryptographic coprocessor that is located on a second die with the second processing core. Alternatively, the second processing core and the second cryptographic co-processor can be located on the first die.
- The first cryptographic co-processor can be coupled to the instruction decoder unit.
- The first cryptographic co-processor and the first processing core share the integer multiplier unit.
- The direct memory access engine can be coupled to the load/store unit by a 64 bit data bus.
- The cryptographic control register can include data that identifies a type of cryptographic instruction received in the first cryptographic co-processor.
- One alternative embodiment includes a method of executing a cryptographic command. A cryptographic instruction is received in an load store unit in a processing core on a first die. The cryptographic instruction is analyzed to determine if the cryptographic instruction is a crypto store instruction. If the cryptographic instruction is a crypto store instruction, then a source operand of the crypto store instruction is stored in a crypto control register in a cryptographic co-processor on the first die. The source operand is analyzed to determine if the source operand identifies a corresponding crypto command. If the source operand identifies the corresponding crypto command, the corresponding crypto command is executed.
- The cryptographic co-processor can also send an interrupt to an instruction execution unit that is included in the processing core such as when execution of a crypto command is completed.
- A result of the cryptographic instruction can also be output to a memory system using a load store unit that is included in the processing core.
- Execution of the cryptographic instruction in the cryptographic co-processor can also include accessing data through the load store unit.
- The cryptographic co-processor can also include a direct memory access engine. Accessing data can also include loading and storing data in a main memory.
- Executing the cryptographic instruction in the cryptographic co-processor can also include executing a multiplication function. The cryptographic co-processor can include an integer multiplier unit for executing the multiplication function.
- The various embodiments of the present invention provide the ability for a crypto processor to rapidly encrypt and/or decrypt data, such as streaming data, at rates much greater than possible by a prior art crypto processor.
- Other aspects and advantages of the invention will become apparent from the following detailed description, taken in conjunction with the accompanying drawings, illustrating by way of example the principles of the invention.
- The present invention will be readily understood by the following detailed description in conjunction with the accompanying drawings, and like reference numerals designate like structural elements.
- FIG. 1 shows a typical server and client computer that are linked by a network, such as the Internet or other network.
- FIG. 2 is a high-level block diagram of a typical server.
- FIG. 3 is a flowchart diagram of the method operations of a typical encrypted data transaction within the server.
- FIG. 4 shows a single CPU die (chip) in accordance with one embodiment of the present invention.
- FIG. 5 shows a detailed view of the processor core and cryptographic coprocessor in accordance with one embodiment of the present invention.
- FIG. 6 is a
flowchart 600 of the method operations of the pairedprocessor 410 andcrypto co-processor 420 according to one embodiment of the present invention. - Several exemplary embodiments for a system and method for increased and/or more efficient data encryption and decryption process speeds will now be described. It will be apparent to those skilled in the art that the present invention may be practiced without some or all of the specific details set forth herein.
- FIG. 4 shows a single CPU die (chip)400 in accordance with one embodiment of the present invention. The
CPU chip 400 includes aprocessing core 410. Theprocessing core 410 is paired with acryptographic co-processor 420. Thecryptographic co-processor 420 is optimized to minimize the amount of hardware added to the CPU die 400. The CPU die 400 can also includeadditional processing cores 410 n and each of theadditional processing cores 410 n is also paired with acryptographic co-processor 420 n. Theprocessing cores processor crossbar 430. Theprocessor crossbar 430 is a data bus system that provides a common data communication link between the processingcores processing cores - FIG. 5 shows a detailed view of the
processor core 410 andcryptographic coprocessor 420 in accordance with one embodiment of the present invention. Theprocessor core 410 includes an instruction decode/trap handler unit 504, aninstruction execution unit 506, aload store unit 508 and aninteger multiplier unit 514. Aninstruction cache 502 is coupled to the input of the instruction decode/trap handler unit 504. Adata cache 520 is coupled to theload store unit 508. Thedata cache 520 and theinstruction cache 502 are also coupled to theprocessor crossbar 430. Thedata cache 520 can be a level-1 cache and can be between about 4 kb and about 64 kb in size. - The crypto-
coprocessor 420 includes acrypto control register 510, acrypto memory 516, aDMA engine 518 and thecrypto co-processor core 512. The crypto control register 510 stores the settings of thecrypto co-processor 420. The settings can include identifying the type of encryption or decryption command or operation to be performed. The types of encryption or decryption command can include any of the encryption and decryption schemes known in the art. Thecrypto control register 510 also stores the status of the current crypto operations and is accessible by theprocessor 410 so that theprocessor 410 can check the status of the current crypto operations. Thecrypto control register 510 is linked to theload store unit 508 by alogical link 530, which represents the bi-directional interchange of data between theload store unit 508 and thecrypto control register 510. - The
DMA engine 518 is coupled to theload store unit 508 by acrypto bus 522. TheDMA engine 518 provides more direct access to the memory system hierarchy, such as the main memory, thedata cache 520 and a level-2 cache, that can be accessed via theload store unit 508 and, if necessary, theprocessor crossbar 430. Thecrypto bus 522 can be as wide as feasible to enable rapid data transfer between thecrypto coprocessor 420 and theprocessing core 410. In one embodiment, thecrypto bus 522 is a 64-bit bus. - The
crypto memory 516 is sufficiently large enough to hold the operands and results for a particular crypto operation. By way of example, in an RSA decryption application, thecrypto memory 516 is about 1.3 KB, which is large enough for a modular exponentiation on 2048-bit keys. - As shown in FIG. 5, the
integer multiplier unit 514 is included within thecrypto processor core 512 but directly accessible by theprocessor core 410 by alogical link 532. Alternatively, theinteger multiplier unit 514 can be part of theprocessor core 410 as long as thecrypto processor core 512 can directly access theinteger multiplier unit 514. In this manner thecrypto processor core 512 and theprocessor core 410 can share theinteger multiplier unit 514 so as to reduce the space used (i.e., number of devices required) on the die. Typical, prior art crypto processors were not included on thedie 400 with the processor core because the crypto processors consumed too much valuable space on the die that was needed more for the processor core. - Sharing several components significantly reduces the “footprint” of the crypto processor so as to allow the crypto processor to be placed on the
same die 400 as the processor core. Theinteger multiplier unit 514 performs the modular multiply and modular exponentiation functions. Theprocessor core 410 only uses theinteger multiplier unit 514 about 2-5% of the time. Therefore thecrypto processor 420 can use theinteger multiplier 514 about 95-98% of the time without impacting operations within theprocessor core 410. Moving theinteger multiplier unit 514 into thecrypto processor 420 further streamlines the crypto functions of theinteger multiplier unit 514. - The
integer multiplier unit 514 is capable of performing modular arithmetic such as Montgomery multiply functions and exponentiation. A Montgomery multiply function is a technique for performing modular multiplication on a large integer (e.g. a 2048 bit number) using two multiplications rather than a multiplication and a division. Theinteger multiplier unit 514 can be a 64-bit×64-bit integer multiplier unit. A 64 bit×64-bit integer multiplication unit can directly access operands that are stored in thecrypto memory 516 rather than flooding thecrypto bus 522 and theload store unit 508 every clock cycle. Flooding thecrypto bus 522 and theload store unit 508 every clock cycle would effectively stall theprocessor core 410 because theload store unit 508 would only be able to address the demands of thecrypto processor 420. Having acrypto memory 516 that is sufficiently large enough to perform a complete modular exponentiation relieves the data throughput load on thecrypto bus 522 and theload store unit 508 and thereby allows theprocessor core 410 and thecrypto processor 420 to operate in simultaneously on different operations and functions for many clock cycles. - FIG. 6 is a
flowchart 600 of the method operations of the pairedprocessor 410 andcrypto co-processor 420 according to one embodiment of the present invention. Theinstruction cache 502 temporarily stores the next instruction to be executed in theprocessor core 410. Inoperation 605 the next instruction is received in the instruction decode/trap handler unit 504 from theinstruction cache 502. - The received instruction is forwarded to the
instruction execution unit 506 for execution inoperation 610. Theinstruction execution unit 506 analyzes the received instruction to determine if the received instruction is a load or a store instruction inoperation 615. - If, in
operation 615 above, the received instruction is not a load or store instruction, the instruction is executed as required in thevarious stages processor core 410 as necessary to complete execution of the non-load/non-store instruction, inoperation 620 and the method operations on the executed instruction result ends. - If, in
operation 615 above, the received instruction is a load instruction or a store instruction, the received instruction is forwarded to theload store unit 508 inoperation 630. - In
operation 635, theload store unit 508 analyzes the received instruction to determine if the received instruction is a crypto load instruction or a crypto store instruction. - If, in
operation 635, the received instruction is not a crypto load instruction or a crypto store instruction, the non-crypto store instruction/non-crypto load instruction is executed in the load store unit 508 (i.e., the prescribed load or store function is performed) inoperation 640 and the method operations for that instruction ends. - If, in
operation 635, the received instruction is a crypto load instruction or a crypto store instruction, the crypto load or crypto store instruction is analyzed inoperation 650. - If, in
operation 650, the crypto load or crypto store instruction is a crypto load instruction, the load/store unit 508 transfers the data from thecrypto co-processor 420 back to theprocessor 410, inoperation 655 and the method operations for the instruction end. - If, in
operation 650, the crypto load or crypto store instruction is a crypto store instruction (i.e., not a crypto load instruction), the load/store unit 508 transfers a source operand of the crypto store instruction to thecrypto control register 510 inoperation 660. In operation, 665, thecrypto co-processor 420 analyzes the data in the crypto control registers 510 to determine if the stored data identifies a corresponding crypto command. If the data does not identify a corresponding crypto command, the method operations for the instruction end. - If, in
operation 665, the data identifies a corresponding crypto command, the corresponding crypto command is executed inoperation 670. - When the execution of the crypto command is complete, the
crypto coprocessor 420 can send an interrupt to theinstruction execution unit 506 in theprocessor core 410 via thelogical link 534, inoperation 670 and the method operations for the crypto command ends. Some crypto command can also cause data in thecrypto memory 516 to be output to the memory system via theload store unit 508. Conversely, some crypto commands will cause data in the memory system to be loaded into the crypto memory via theload store unit 508. - The
crypto co-processor 420 can process data independent of theprocessor core 410 for multiple and even thousands of clock cycles. Pairing thecrypto processor 420 with theprocessing core 410 on thesame die 400 increases the speed of the encryption and/or decryption processes by operating thecrypto processor 420 and theprocessing core 410 at the same clock speed. The speed of the encryption and/or decryption processes is also increased because the data (e.g., data stream) to be encrypted and/or decrypted is not required to be transmitted the relatively long distance between thecrypto processor 220 and theprocessor 202, at the much slower speed across theperipheral bus 208 such as described in FIG. 2 above. Further, the pairing thecrypto processor 420 with theprocessing core 410 allows thecrypto processor 420 to directly access the memory system hierarchy through the crypto processor's 420DMA engine 518 and theload store unit 508. This direct memory access allows thecrypto processor 420 to rapidly encrypt and/or decrypt streaming data at rates much greater than possible by a peripheralcrypto processor 220 shown in FIG. 2 above. - As used herein the term “about” means +/−10%. By way of example, the phrase “about 250” indicates a range of between 225 and 275.
- With the above embodiments in mind, it should be understood that the invention might employ various computer-implemented operations involving data stored in computer systems. These operations are those requiring physical manipulation of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. Further, the manipulations performed are often referred to in terms, such as producing, identifying, determining, or comparing.
- It will be further appreciated that the instructions represented by the operations in FIG. 6 are not required to be performed in the order illustrated, and that all the processing represented by the operations may not be necessary to practice the invention.
- Although the foregoing invention has been described in some detail for purposes of clarity of understanding, it will be apparent that certain changes and modifications may be practiced within the scope of the appended claims. Accordingly, the present embodiments are to be considered as illustrative and not restrictive, and the invention is not to be limited to the details given herein, but may be modified within the scope and equivalents of the appended claims.
Claims (20)
1. A microprocessor comprising:
a first processing core including:
an instruction decode unit;
an instruction execution unit;
a load/store unit;
a first cryptographic co-processor located on a first die with the first processing core; and
an integer multiplier unit that is coupled to the integer execution unit and the first cryptographic co-processor.
2. The microprocessor of claim 1 , wherein the integer multiplier unit is included within the first processing core.
3. The microprocessor of claim 1 , wherein the integer multiplier unit is included within the first cryptographic co-processor.
4. The microprocessor of claim 1 , wherein the integer multiplier unit is a 64-bit×64-bit multiplier unit.
5. The microprocessor of claim 1 , wherein the load/store unit is coupled to a main memory hierarchy.
6. The microprocessor of claim 1 , wherein the first processing core is coupled to a second processing core by a processor crossbar.
7. The microprocessor of claim 6 , wherein the second processing core is coupled to a second cryptographic co-processor that is located on a second first die with the second processing core.
8. The microprocessor of claim 6 , wherein the second processing core and the second cryptographic co-processor are located on the first die.
9. The microprocessor of claim 1 , wherein the first cryptographic co-processor Is coupled to the load store unit.
10. The microprocessor of claim 1 , wherein the first cryptographic co-processor and the first processing core share the integer multiplier unit.
11. The microprocessor of claim 1 , wherein the first cryptographic co-processor includes:
a cryptographic control register;
a direct memory access engine that is coupled to the load/store unit;
a cryptographic memory; and
12. The microprocessor of claim 11 , wherein the cryptographic memory is at least large enough to perform a Montgomery multiplication function.
13. The microprocessor of claim 11 , wherein the direct memory access engine is coupled to the load/store unit by a 64-bit data bus.
14. The microprocessor of claim 11 , wherein the cryptographic control register includes data that identifies a type of cryptographic command received in the first cryptographic co-processor.
15. A method of executing a cryptographic command comprising:
receiving a cryptographic instruction in an load store unit in a processing core on a first die;
determining if the cryptographic instruction is a crypto store instruction;
if the cryptographic instruction is a crypto store instruction, then a source operand of the crypto store instruction is stored in a crypto control register in a cryptographic co-processor on the first die;
determining if the source operand identifies a corresponding crypto command; and
executing the corresponding crypto command if the source operand identifies the corresponding crypto command.
16. The method of claim 15 , further comprising sending an interrupt from the cryptographic co-processor to an instruction execution unit that is included in the processing core.
17. The method of claim 15 , further comprising outputting a result of the cryptographic instruction to a memory system using a load store unit that is included in the processing core.
18. The method of claim 15 , wherein executing the cryptographic instruction in the cryptographic co-processor includes:
accessing data through the load store unit.
19. The method of claim 18 , wherein the cryptographic co-processor includes a direct memory access engine.
20. The method of claim 19 , wherein the cryptographic co-processor includes an integer multiplier unit.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/273,718 US20030084309A1 (en) | 2001-10-22 | 2002-10-18 | Stream processor with cryptographic co-processor |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US34531501P | 2001-10-22 | 2001-10-22 | |
US10/273,718 US20030084309A1 (en) | 2001-10-22 | 2002-10-18 | Stream processor with cryptographic co-processor |
Publications (1)
Publication Number | Publication Date |
---|---|
US20030084309A1 true US20030084309A1 (en) | 2003-05-01 |
Family
ID=23354532
Family Applications (7)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/272,783 Active 2025-08-22 US7248585B2 (en) | 2001-10-22 | 2002-10-16 | Method and apparatus for a packet classifier |
US10/272,784 Expired - Lifetime US6901491B2 (en) | 2001-10-22 | 2002-10-16 | Method and apparatus for integration of communication links with a remote direct memory access protocol |
US10/272,786 Expired - Lifetime US7209996B2 (en) | 2001-10-22 | 2002-10-16 | Multi-core multi-thread processor |
US10/273,829 Abandoned US20030105907A1 (en) | 2001-10-22 | 2002-10-17 | System and method for caching DRAM using an egress buffer |
US10/273,806 Expired - Lifetime US6938119B2 (en) | 2001-10-22 | 2002-10-18 | DRAM power management |
US10/273,718 Abandoned US20030084309A1 (en) | 2001-10-22 | 2002-10-18 | Stream processor with cryptographic co-processor |
US11/686,317 Expired - Lifetime US7865667B2 (en) | 2001-10-22 | 2007-03-14 | Multi-core multi-thread processor |
Family Applications Before (5)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/272,783 Active 2025-08-22 US7248585B2 (en) | 2001-10-22 | 2002-10-16 | Method and apparatus for a packet classifier |
US10/272,784 Expired - Lifetime US6901491B2 (en) | 2001-10-22 | 2002-10-16 | Method and apparatus for integration of communication links with a remote direct memory access protocol |
US10/272,786 Expired - Lifetime US7209996B2 (en) | 2001-10-22 | 2002-10-16 | Multi-core multi-thread processor |
US10/273,829 Abandoned US20030105907A1 (en) | 2001-10-22 | 2002-10-17 | System and method for caching DRAM using an egress buffer |
US10/273,806 Expired - Lifetime US6938119B2 (en) | 2001-10-22 | 2002-10-18 | DRAM power management |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/686,317 Expired - Lifetime US7865667B2 (en) | 2001-10-22 | 2007-03-14 | Multi-core multi-thread processor |
Country Status (10)
Country | Link |
---|---|
US (7) | US7248585B2 (en) |
EP (6) | EP1442355B1 (en) |
JP (6) | JP3789454B2 (en) |
KR (6) | KR20050013191A (en) |
CN (1) | CN1286019C (en) |
AT (1) | ATE518192T1 (en) |
AU (2) | AU2002335878A1 (en) |
DE (4) | DE60236309D1 (en) |
TW (1) | TWI240163B (en) |
WO (6) | WO2003036450A2 (en) |
Cited By (58)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030185391A1 (en) * | 2002-03-28 | 2003-10-02 | Broadcom Corporation | Methods and apparatus for performing hash operations in a cryptography accelerator |
US20040123120A1 (en) * | 2002-12-18 | 2004-06-24 | Broadcom Corporation | Cryptography accelerator input interface data handling |
US20040123123A1 (en) * | 2002-12-18 | 2004-06-24 | Buer Mark L. | Methods and apparatus for accessing security association information in a cryptography accelerator |
US20040123119A1 (en) * | 2002-12-18 | 2004-06-24 | Broadcom Corporation | Cryptography accelerator interface decoupling from cryptography processing cores |
US20040225885A1 (en) * | 2003-05-05 | 2004-11-11 | Sun Microsystems, Inc | Methods and systems for efficiently integrating a cryptographic co-processor |
US20040230813A1 (en) * | 2003-05-12 | 2004-11-18 | International Business Machines Corporation | Cryptographic coprocessor on a general purpose microprocessor |
US20050210280A1 (en) * | 2004-03-19 | 2005-09-22 | Nokia Corporation | Practical and secure storage encryption |
US20050256920A1 (en) * | 2004-05-14 | 2005-11-17 | Crispin Thomas A | Microprocessor apparatus and method for modular exponentiation |
US20060036826A1 (en) * | 2004-07-30 | 2006-02-16 | International Business Machines Corporation | System, method and storage medium for providing a bus speed multiplier |
US20060095629A1 (en) * | 2004-10-29 | 2006-05-04 | International Business Machines Corporation | System, method and storage medium for providing a service interface to a memory system |
US20060095671A1 (en) * | 2004-10-29 | 2006-05-04 | International Business Machines Corporation | System, method and storage medium for providing data caching and data compression in a memory subsystem |
US20060095701A1 (en) * | 2004-10-29 | 2006-05-04 | International Business Machines Corporation | System, method and storage medium for a memory subsystem with positional read data latency |
US20060095620A1 (en) * | 2004-10-29 | 2006-05-04 | International Business Machines Corporation | System, method and storage medium for merging bus data in a memory subsystem |
US20060107175A1 (en) * | 2004-10-29 | 2006-05-18 | International Business Machines Corporation | System, method and storage medium for providing fault detection and correction in a memory subsystem |
US20060107186A1 (en) * | 2004-10-29 | 2006-05-18 | International Business Machines Corporation | System, method and storage medium for providing a high speed test interface to a memory subsystem |
US20060136915A1 (en) * | 2004-12-17 | 2006-06-22 | Sun Microsystems, Inc. | Method and apparatus for scheduling multiple threads for execution in a shared microprocessor pipeline |
US20060133604A1 (en) * | 2004-12-21 | 2006-06-22 | Mark Buer | System and method for securing data from a remote input device |
US20070088959A1 (en) * | 2004-12-15 | 2007-04-19 | Cox Michael B | Chipset security offload engine |
US20070101086A1 (en) * | 2005-10-31 | 2007-05-03 | International Business Machines Corporation | System, method and storage medium for deriving clocks in a memory system |
EP1801725A2 (en) * | 2005-12-14 | 2007-06-27 | Nvidia Corporation | Chipset security offload engine |
US20070157030A1 (en) * | 2005-12-30 | 2007-07-05 | Feghali Wajdi K | Cryptographic system component |
US20070183331A1 (en) * | 2005-11-28 | 2007-08-09 | International Business Machines Corporation | Method and system for providing indeterminate read data latency in a memory system |
US20070192547A1 (en) * | 2005-12-30 | 2007-08-16 | Feghali Wajdi K | Programmable processing unit |
US20070276977A1 (en) * | 2006-05-24 | 2007-11-29 | International Business Machines Corporation | Systems and methods for providing memory modules with multiple hub devices |
US20070294466A1 (en) * | 2004-10-29 | 2007-12-20 | International Business Machines Corporation | System, method and storage medium for a memory subsystem command interface |
US20080013715A1 (en) * | 2005-12-30 | 2008-01-17 | Feghali Wajdi K | Cryptography processing units and multiplier |
US20080034148A1 (en) * | 2006-08-01 | 2008-02-07 | International Business Machines Corporation | Systems and methods for providing performance monitoring in a memory system |
US20080040563A1 (en) * | 2006-08-10 | 2008-02-14 | International Business Machines Corporation | Systems and methods for memory module power management |
US20080040569A1 (en) * | 2004-10-29 | 2008-02-14 | International Business Machines Corporation | System, method and storage medium for bus calibration in a memory subsystem |
US20080098277A1 (en) * | 2006-10-23 | 2008-04-24 | International Business Machines Corporation | High density high reliability memory module with power gating and a fault tolerant address and command bus |
US20080109903A1 (en) * | 2006-11-07 | 2008-05-08 | Spansion Llc | Secure co-processing memory controller integrated into an embedded memory subsystem |
US20080133797A1 (en) * | 2004-07-30 | 2008-06-05 | International Business Machines Corporation | System, method and storage medium for a multi-mode memory buffer device |
US20080162991A1 (en) * | 2007-01-02 | 2008-07-03 | International Business Machines Corporation | Systems and methods for improving serviceability of a memory system |
US20080183903A1 (en) * | 2007-01-29 | 2008-07-31 | International Business Machines Corporation | Systems and methods for providing dynamic memory pre-fetch |
US7434043B2 (en) | 2002-12-18 | 2008-10-07 | Broadcom Corporation | Cryptography accelerator data routing unit |
US20090034734A1 (en) * | 2007-07-31 | 2009-02-05 | Viasat, Inc. | Multi-Level Key Manager |
US20090113218A1 (en) * | 2007-10-30 | 2009-04-30 | Sandisk Il Ltd. | Secure data processing for unaligned data |
US20090119114A1 (en) * | 2007-11-02 | 2009-05-07 | David Alaniz | Systems and Methods for Enabling Customer Service |
US7600131B1 (en) | 1999-07-08 | 2009-10-06 | Broadcom Corporation | Distributed processing in a cryptography acceleration chip |
US7669086B2 (en) | 2006-08-02 | 2010-02-23 | International Business Machines Corporation | Systems and methods for providing collision detection in a memory system |
US7765368B2 (en) | 2004-07-30 | 2010-07-27 | International Business Machines Corporation | System, method and storage medium for providing a serialized memory interface with a bus repeater |
US20100191933A1 (en) * | 2009-01-29 | 2010-07-29 | Infineon Technologies Ag | Apparatus for processing data and method for generating manipulated and re-manipulated configuration data for processor |
US20100318811A1 (en) * | 2009-06-15 | 2010-12-16 | Kabushiki Kaisha Toshiba | Cryptographic processor |
US7920701B1 (en) | 2004-12-15 | 2011-04-05 | Nvidia Corporation | System and method for digital content protection |
US20120066510A1 (en) * | 2010-09-15 | 2012-03-15 | At&T Intellectual Property I, L.P. | Methods, systems, and computer program products for performing homomorphic encryption and decryption on individual operations |
US20120213360A1 (en) * | 2011-02-18 | 2012-08-23 | Bull Sas | Programmable cryptographic integrated circuit |
CN104391821A (en) * | 2014-11-20 | 2015-03-04 | 天津大学 | System level model building method of multiple core sharing SIMD coprocessor |
US9264426B2 (en) | 2004-12-20 | 2016-02-16 | Broadcom Corporation | System and method for authentication via a proximate device |
US9420008B1 (en) * | 2012-05-10 | 2016-08-16 | Bae Systems Information And Electronic Systems Integration Inc. | Method for repurposing of communications cryptographic capabilities |
US9547331B2 (en) | 2014-04-03 | 2017-01-17 | Qualcomm Incorporated | Apparatus and method to set the speed of a clock |
US20170024569A1 (en) * | 2015-07-20 | 2017-01-26 | Intel Corporation | Technologies for secure trusted i/o access control |
US9747132B2 (en) | 2013-04-18 | 2017-08-29 | Denso Corporation | Multi-core processor using former-stage pipeline portions and latter-stage pipeline portions assigned based on decode results in former-stage pipeline portions |
US10348506B2 (en) | 2016-09-30 | 2019-07-09 | International Business Machines Corporation | Determination of state of padding operation |
US20220171885A1 (en) * | 2019-08-16 | 2022-06-02 | Pqshield Ltd | Co-processor for cryptographic operations |
US20220382695A1 (en) * | 2021-05-26 | 2022-12-01 | Stmicroelectronics Application Gmbh | Processing system, related integrated circuit, device and method |
RU2816836C1 (en) * | 2023-11-10 | 2024-04-05 | Общество с ограниченной ответственностью "НМ-ТЕХ" | Coprocessor in cryptography processing systems |
US12019765B2 (en) * | 2020-12-14 | 2024-06-25 | Infineon Technologies Ag | Cryptographic processing device and method for cryptographically processing data |
US12117949B2 (en) * | 2021-05-26 | 2024-10-15 | Stmicroelectronics Application Gmbh | Configurable cryptographic processor with integrated DMA interface for secure data handling |
Families Citing this family (311)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2728559B1 (en) * | 1994-12-23 | 1997-01-31 | Saint Gobain Vitrage | GLASS SUBSTRATES COATED WITH A STACK OF THIN LAYERS WITH INFRARED REFLECTION PROPERTIES AND / OR IN THE FIELD OF SOLAR RADIATION |
WO2001074790A2 (en) * | 2000-03-30 | 2001-10-11 | The Penn State Research Foundation | Novel compounds for enhancing chemotherapy |
US7013302B2 (en) * | 2000-12-22 | 2006-03-14 | Nortel Networks Limited | Bit field manipulation |
US7529242B1 (en) * | 2002-02-15 | 2009-05-05 | Symantec Corporation | Routing network packets for multi-processor network flow analysis |
US7376755B2 (en) | 2002-06-11 | 2008-05-20 | Pandya Ashish A | TCP/IP processor and engine using RDMA |
US7631107B2 (en) * | 2002-06-11 | 2009-12-08 | Pandya Ashish A | Runtime adaptable protocol processor |
US7415723B2 (en) * | 2002-06-11 | 2008-08-19 | Pandya Ashish A | Distributed network security system and a hardware processor therefor |
US20040010781A1 (en) * | 2002-07-12 | 2004-01-15 | Maly John Warren | Parameter parsing system |
US7961723B2 (en) | 2002-10-08 | 2011-06-14 | Netlogic Microsystems, Inc. | Advanced processor with mechanism for enforcing ordering between information sent on two independent networks |
US7467243B2 (en) * | 2002-10-08 | 2008-12-16 | Rmi Corporation | Advanced processor with scheme for optimal packet flow in a multi-processor system on a chip |
US7461215B2 (en) * | 2002-10-08 | 2008-12-02 | Rmi Corporation | Advanced processor with implementation of memory ordering on a ring based data movement network |
US7627721B2 (en) * | 2002-10-08 | 2009-12-01 | Rmi Corporation | Advanced processor with cache coherency |
US7461213B2 (en) | 2002-10-08 | 2008-12-02 | Rmi Corporation | Advanced processor system using request, data, snoop, and response rings |
US7984268B2 (en) * | 2002-10-08 | 2011-07-19 | Netlogic Microsystems, Inc. | Advanced processor scheduling in a multithreaded system |
US8015567B2 (en) * | 2002-10-08 | 2011-09-06 | Netlogic Microsystems, Inc. | Advanced processor with mechanism for packet distribution at high line rate |
US20050033889A1 (en) * | 2002-10-08 | 2005-02-10 | Hass David T. | Advanced processor with interrupt delivery mechanism for multi-threaded multi-CPU system on a chip |
US7346757B2 (en) | 2002-10-08 | 2008-03-18 | Rmi Corporation | Advanced processor translation lookaside buffer management in a multithreaded system |
US8037224B2 (en) | 2002-10-08 | 2011-10-11 | Netlogic Microsystems, Inc. | Delegating network processor operations to star topology serial bus interfaces |
US8478811B2 (en) * | 2002-10-08 | 2013-07-02 | Netlogic Microsystems, Inc. | Advanced processor with credit based scheme for optimal packet flow in a multi-processor system on a chip |
US7334086B2 (en) * | 2002-10-08 | 2008-02-19 | Rmi Corporation | Advanced processor with system on a chip interconnect technology |
US20040103248A1 (en) * | 2002-10-08 | 2004-05-27 | Hass David T. | Advanced telecommunications processor |
US7924828B2 (en) * | 2002-10-08 | 2011-04-12 | Netlogic Microsystems, Inc. | Advanced processor with mechanism for fast packet queuing operations |
US20050044324A1 (en) * | 2002-10-08 | 2005-02-24 | Abbas Rashid | Advanced processor with mechanism for maximizing resource usage in an in-order pipeline with multiple threads |
US9088474B2 (en) * | 2002-10-08 | 2015-07-21 | Broadcom Corporation | Advanced processor with interfacing messaging network to a CPU |
US8176298B2 (en) * | 2002-10-08 | 2012-05-08 | Netlogic Microsystems, Inc. | Multi-core multi-threaded processing systems with instruction reordering in an in-order pipeline |
US20050033831A1 (en) * | 2002-10-08 | 2005-02-10 | Abbas Rashid | Advanced processor with a thread aware return address stack optimally used across active threads |
US7673118B2 (en) * | 2003-02-12 | 2010-03-02 | Swarztrauber Paul N | System and method for vector-parallel multiprocessor communication |
US7900055B2 (en) | 2003-04-18 | 2011-03-01 | Via Technologies, Inc. | Microprocessor apparatus and method for employing configurable block cipher cryptographic algorithms |
US7519833B2 (en) | 2003-04-18 | 2009-04-14 | Via Technologies, Inc. | Microprocessor apparatus and method for enabling configurable data block size in a cryptographic engine |
US7542566B2 (en) | 2003-04-18 | 2009-06-02 | Ip-First, Llc | Apparatus and method for performing transparent cipher block chaining mode cryptographic functions |
US7392400B2 (en) | 2003-04-18 | 2008-06-24 | Via Technologies, Inc. | Microprocessor apparatus and method for optimizing block cipher cryptographic functions |
US7532722B2 (en) | 2003-04-18 | 2009-05-12 | Ip-First, Llc | Apparatus and method for performing transparent block cipher cryptographic functions |
US7529367B2 (en) | 2003-04-18 | 2009-05-05 | Via Technologies, Inc. | Apparatus and method for performing transparent cipher feedback mode cryptographic functions |
US7539876B2 (en) | 2003-04-18 | 2009-05-26 | Via Technologies, Inc. | Apparatus and method for generating a cryptographic key schedule in a microprocessor |
US7925891B2 (en) | 2003-04-18 | 2011-04-12 | Via Technologies, Inc. | Apparatus and method for employing cryptographic functions to generate a message digest |
US7502943B2 (en) | 2003-04-18 | 2009-03-10 | Via Technologies, Inc. | Microprocessor apparatus and method for providing configurable cryptographic block cipher round results |
US7844053B2 (en) | 2003-04-18 | 2010-11-30 | Ip-First, Llc | Microprocessor apparatus and method for performing block cipher cryptographic functions |
US7536560B2 (en) | 2003-04-18 | 2009-05-19 | Via Technologies, Inc. | Microprocessor apparatus and method for providing configurable cryptographic key size |
US7529368B2 (en) | 2003-04-18 | 2009-05-05 | Via Technologies, Inc. | Apparatus and method for performing transparent output feedback mode cryptographic functions |
US8060755B2 (en) | 2003-04-18 | 2011-11-15 | Via Technologies, Inc | Apparatus and method for providing user-generated key schedule in a microprocessor cryptographic engine |
US7321910B2 (en) * | 2003-04-18 | 2008-01-22 | Ip-First, Llc | Microprocessor apparatus and method for performing block cipher cryptographic functions |
CA2467140A1 (en) * | 2003-05-12 | 2004-11-12 | Auckland Uniservices Limited | An integrity mechanism for file transfer in communications networks |
US8266379B2 (en) * | 2003-06-02 | 2012-09-11 | Infineon Technologies Ag | Multithreaded processor with multiple caches |
US20050108518A1 (en) * | 2003-06-10 | 2005-05-19 | Pandya Ashish A. | Runtime adaptable security processor |
US7685254B2 (en) * | 2003-06-10 | 2010-03-23 | Pandya Ashish A | Runtime adaptable search processor |
US8730923B2 (en) * | 2003-06-11 | 2014-05-20 | Alcatel Lucent | Method for controlling resource allocation in a wireless communication system |
JP3761544B2 (en) | 2003-06-25 | 2006-03-29 | インターナショナル・ビジネス・マシーンズ・コーポレーション | SETTING DEVICE, INFORMATION PROCESSING DEVICE, SETTING METHOD, PROGRAM, AND RECORDING MEDIUM |
US7996839B2 (en) * | 2003-07-16 | 2011-08-09 | Hewlett-Packard Development Company, L.P. | Heterogeneous processor core systems for improved throughput |
US7133950B2 (en) | 2003-08-19 | 2006-11-07 | Sun Microsystems, Inc. | Request arbitration in multi-core processor |
US8463996B2 (en) * | 2003-08-19 | 2013-06-11 | Oracle America, Inc. | Multi-core multi-thread processor crossbar architecture |
US20050044320A1 (en) * | 2003-08-19 | 2005-02-24 | Sun Microsystems, Inc. | Cache bank interface unit |
US7873785B2 (en) * | 2003-08-19 | 2011-01-18 | Oracle America, Inc. | Multi-core multi-thread processor |
EP1522923A3 (en) * | 2003-10-08 | 2011-06-22 | STMicroelectronics SA | Simultaneous multi-threaded (SMT) processor architecture |
US7536692B2 (en) * | 2003-11-06 | 2009-05-19 | Intel Corporation | Thread-based engine cache partitioning |
US7617241B2 (en) * | 2003-11-07 | 2009-11-10 | Rmi Corporation | Method and apparatus for enhanced hashing |
US8516179B2 (en) * | 2003-12-03 | 2013-08-20 | Digital Rna, Llc | Integrated circuit with coupled processing cores |
US7222299B1 (en) * | 2003-12-19 | 2007-05-22 | Google, Inc. | Detecting quoted text |
US7308558B2 (en) * | 2004-01-07 | 2007-12-11 | International Business Machines Corporation | Multiprocessor data processing system having scalable data interconnect and data routing mechanism |
US7007128B2 (en) * | 2004-01-07 | 2006-02-28 | International Business Machines Corporation | Multiprocessor data processing system having a data routing mechanism regulated through control communication |
US7634655B2 (en) * | 2004-02-13 | 2009-12-15 | Microsoft Corporation | Efficient hash table protection for data transport protocols |
US7564381B1 (en) * | 2004-02-16 | 2009-07-21 | Cisco Technology, Inc. | System and method for code-based compression in a communications environment |
US7649879B2 (en) * | 2004-03-30 | 2010-01-19 | Extreme Networks, Inc. | Pipelined packet processor |
US7292591B2 (en) | 2004-03-30 | 2007-11-06 | Extreme Networks, Inc. | Packet processing system architecture and method |
US7936687B1 (en) * | 2004-03-30 | 2011-05-03 | Extreme Networks, Inc. | Systems for statistics gathering and sampling in a packet processing system |
US7889750B1 (en) | 2004-04-28 | 2011-02-15 | Extreme Networks, Inc. | Method of extending default fixed number of processing cycles in pipelined packet processor architecture |
KR100594755B1 (en) * | 2004-05-11 | 2006-06-30 | 삼성전자주식회사 | The packet classification method through hierarchial rulebase partitioning |
US7480302B2 (en) * | 2004-05-11 | 2009-01-20 | Samsung Electronics Co., Ltd. | Packet classification method through hierarchical rulebase partitioning |
US7418582B1 (en) | 2004-05-13 | 2008-08-26 | Sun Microsystems, Inc. | Versatile register file design for a multi-threaded processor utilizing different modes and register windows |
US20060041715A1 (en) * | 2004-05-28 | 2006-02-23 | Chrysos George Z | Multiprocessor chip having bidirectional ring interconnect |
US7369557B1 (en) * | 2004-06-03 | 2008-05-06 | Cisco Technology, Inc. | Distribution of flows in a flow-based multi-processor system |
US7760719B2 (en) | 2004-06-30 | 2010-07-20 | Conexant Systems, Inc. | Combined pipelined classification and address search method and apparatus for switching environments |
US7366829B1 (en) | 2004-06-30 | 2008-04-29 | Sun Microsystems, Inc. | TLB tag parity checking without CAM read |
US7571284B1 (en) | 2004-06-30 | 2009-08-04 | Sun Microsystems, Inc. | Out-of-order memory transactions in a fine-grain multithreaded/multi-core processor |
US20060009265A1 (en) * | 2004-06-30 | 2006-01-12 | Clapper Edward O | Communication blackout feature |
US7543132B1 (en) | 2004-06-30 | 2009-06-02 | Sun Microsystems, Inc. | Optimizing hardware TLB reload performance in a highly-threaded processor with multiple page sizes |
US7290116B1 (en) | 2004-06-30 | 2007-10-30 | Sun Microsystems, Inc. | Level 2 cache index hashing to avoid hot spots |
US7519796B1 (en) | 2004-06-30 | 2009-04-14 | Sun Microsystems, Inc. | Efficient utilization of a store buffer using counters |
US7509484B1 (en) | 2004-06-30 | 2009-03-24 | Sun Microsystems, Inc. | Handling cache misses by selectively flushing the pipeline |
US7492763B1 (en) * | 2004-07-16 | 2009-02-17 | Applied Micro Circuits Corporation | User-specified key creation from attributes independent of encapsulation type |
US7681105B1 (en) * | 2004-08-09 | 2010-03-16 | Bakbone Software, Inc. | Method for lock-free clustered erasure coding and recovery of data across a plurality of data stores in a network |
US7941585B2 (en) | 2004-09-10 | 2011-05-10 | Cavium Networks, Inc. | Local scratchpad and data caching system |
US7594081B2 (en) * | 2004-09-10 | 2009-09-22 | Cavium Networks, Inc. | Direct access to low-latency memory |
DK1794979T3 (en) * | 2004-09-10 | 2017-07-24 | Cavium Inc | Selective copying of data structure |
US7748001B2 (en) * | 2004-09-23 | 2010-06-29 | Intel Corporation | Multi-thread processing system for detecting and handling live-lock conditions by arbitrating livelock priority of logical processors based on a predertermined amount of time |
US9626194B2 (en) | 2004-09-23 | 2017-04-18 | Intel Corporation | Thread livelock unit |
US7788670B2 (en) * | 2004-10-26 | 2010-08-31 | Intel Corporation | Performance-based workload scheduling in multi-core architectures |
US7356737B2 (en) * | 2004-10-29 | 2008-04-08 | International Business Machines Corporation | System, method and storage medium for testing a memory module |
US7564847B2 (en) * | 2004-12-13 | 2009-07-21 | Intel Corporation | Flow assignment |
US7937709B2 (en) * | 2004-12-29 | 2011-05-03 | Intel Corporation | Synchronizing multiple threads efficiently |
US8719819B2 (en) * | 2005-06-30 | 2014-05-06 | Intel Corporation | Mechanism for instruction set based thread execution on a plurality of instruction sequencers |
US7430643B2 (en) * | 2004-12-30 | 2008-09-30 | Sun Microsystems, Inc. | Multiple contexts for efficient use of translation lookaside buffer |
US7428619B2 (en) * | 2005-01-18 | 2008-09-23 | Sony Computer Entertainment Inc. | Methods and apparatus for providing synchronization of shared data |
US7426649B2 (en) * | 2005-02-09 | 2008-09-16 | International Business Machines Corporation | Power management via DIMM read operation limiter |
US7421598B2 (en) * | 2005-02-09 | 2008-09-02 | International Business Machines Corporation | Dynamic power management via DIMM read operation limiter |
US7769858B2 (en) * | 2005-02-23 | 2010-08-03 | International Business Machines Corporation | Method for efficiently hashing packet keys into a firewall connection table |
US7443878B2 (en) | 2005-04-04 | 2008-10-28 | Sun Microsystems, Inc. | System for scaling by parallelizing network workload |
US20060271557A1 (en) * | 2005-05-25 | 2006-11-30 | Terracotta, Inc. | Database Caching and Invalidation Based on Detected Database Updates |
US8397013B1 (en) | 2006-10-05 | 2013-03-12 | Google Inc. | Hybrid memory module |
US7392338B2 (en) * | 2006-07-31 | 2008-06-24 | Metaram, Inc. | Interface circuit system and method for autonomously performing power management operations in conjunction with a plurality of memory circuits |
US8130560B1 (en) | 2006-11-13 | 2012-03-06 | Google Inc. | Multi-rank partial width memory modules |
US8619452B2 (en) | 2005-09-02 | 2013-12-31 | Google Inc. | Methods and apparatus of stacking DRAMs |
US8090897B2 (en) | 2006-07-31 | 2012-01-03 | Google Inc. | System and method for simulating an aspect of a memory circuit |
US7639613B1 (en) * | 2005-06-24 | 2009-12-29 | Packeteer, Inc. | Adaptive, flow-based network traffic measurement and monitoring system |
US7472220B2 (en) * | 2006-07-31 | 2008-12-30 | Metaram, Inc. | Interface circuit system and method for performing power management operations utilizing power management signals |
US8327104B2 (en) | 2006-07-31 | 2012-12-04 | Google Inc. | Adjusting the timing of signals associated with a memory system |
US8060774B2 (en) | 2005-06-24 | 2011-11-15 | Google Inc. | Memory systems and memory modules |
US7386656B2 (en) * | 2006-07-31 | 2008-06-10 | Metaram, Inc. | Interface circuit system and method for performing power management operations in conjunction with only a portion of a memory circuit |
US8796830B1 (en) | 2006-09-01 | 2014-08-05 | Google Inc. | Stackable low-profile lead frame package |
US9542352B2 (en) | 2006-02-09 | 2017-01-10 | Google Inc. | System and method for reducing command scheduling constraints of memory circuits |
US20080028136A1 (en) | 2006-07-31 | 2008-01-31 | Schakel Keith R | Method and apparatus for refresh management of memory modules |
US8089795B2 (en) | 2006-02-09 | 2012-01-03 | Google Inc. | Memory module with memory stack and interface with enhanced capabilities |
US20080082763A1 (en) | 2006-10-02 | 2008-04-03 | Metaram, Inc. | Apparatus and method for power management of memory circuits by a system or component thereof |
US8359187B2 (en) | 2005-06-24 | 2013-01-22 | Google Inc. | Simulating a different number of memory circuit devices |
US8081474B1 (en) | 2007-12-18 | 2011-12-20 | Google Inc. | Embossed heat spreader |
US9507739B2 (en) | 2005-06-24 | 2016-11-29 | Google Inc. | Configurable memory circuit system and method |
US8244971B2 (en) | 2006-07-31 | 2012-08-14 | Google Inc. | Memory circuit system and method |
US8111566B1 (en) | 2007-11-16 | 2012-02-07 | Google, Inc. | Optimal channel design for memory devices for providing a high-speed memory interface |
US8335894B1 (en) | 2008-07-25 | 2012-12-18 | Google Inc. | Configurable memory system with interface circuit |
US9171585B2 (en) | 2005-06-24 | 2015-10-27 | Google Inc. | Configurable memory circuit system and method |
US8041881B2 (en) | 2006-07-31 | 2011-10-18 | Google Inc. | Memory device with emulated characteristics |
US8438328B2 (en) | 2008-02-21 | 2013-05-07 | Google Inc. | Emulation of abstracted DIMMs using abstracted DRAMs |
US8386722B1 (en) | 2008-06-23 | 2013-02-26 | Google Inc. | Stacked DIMM memory interface |
US8055833B2 (en) | 2006-10-05 | 2011-11-08 | Google Inc. | System and method for increasing capacity, performance, and flexibility of flash storage |
US10013371B2 (en) | 2005-06-24 | 2018-07-03 | Google Llc | Configurable memory circuit system and method |
US8077535B2 (en) | 2006-07-31 | 2011-12-13 | Google Inc. | Memory refresh apparatus and method |
US8407432B2 (en) * | 2005-06-30 | 2013-03-26 | Intel Corporation | Cache coherency sequencing implementation and adaptive LLC access priority control for CMP |
US20070005899A1 (en) * | 2005-06-30 | 2007-01-04 | Sistla Krishnakanth V | Processing multicore evictions in a CMP multiprocessor |
CN100458757C (en) * | 2005-07-28 | 2009-02-04 | 大唐移动通信设备有限公司 | Inter core communication method and apparatus for multi-core processor in embedded real-time operating system |
US20070086456A1 (en) * | 2005-08-12 | 2007-04-19 | Electronics And Telecommunications Research Institute | Integrated layer frame processing device including variable protocol header |
GB0519981D0 (en) | 2005-09-30 | 2005-11-09 | Ignios Ltd | Scheduling in a multicore architecture |
US7159082B1 (en) * | 2005-10-03 | 2007-01-02 | Hewlett-Packard Development Company, L.P. | System and method for throttling memory accesses |
US7984180B2 (en) * | 2005-10-20 | 2011-07-19 | Solarflare Communications, Inc. | Hashing algorithm for network receive filtering |
US20070124728A1 (en) * | 2005-11-28 | 2007-05-31 | Mark Rosenbluth | Passing work between threads |
US20070150895A1 (en) * | 2005-12-06 | 2007-06-28 | Kurland Aaron S | Methods and apparatus for multi-core processing with dedicated thread management |
US7750915B1 (en) * | 2005-12-19 | 2010-07-06 | Nvidia Corporation | Concurrent access of data elements stored across multiple banks in a shared memory resource |
US20070168377A1 (en) * | 2005-12-29 | 2007-07-19 | Arabella Software Ltd. | Method and apparatus for classifying Internet Protocol data packets |
US7822033B1 (en) | 2005-12-30 | 2010-10-26 | Extreme Networks, Inc. | MAC address detection device for virtual routers |
US7894451B2 (en) * | 2005-12-30 | 2011-02-22 | Extreme Networks, Inc. | Method of providing virtual router functionality |
US7817633B1 (en) | 2005-12-30 | 2010-10-19 | Extreme Networks, Inc. | Method of providing virtual router functionality through abstracted virtual identifiers |
US9632929B2 (en) | 2006-02-09 | 2017-04-25 | Google Inc. | Translating an address associated with a command communicated between a system and memory circuits |
US7774590B2 (en) * | 2006-03-23 | 2010-08-10 | Intel Corporation | Resiliently retaining state information of a many-core processor |
US7610330B1 (en) * | 2006-03-30 | 2009-10-27 | Packeteer, Inc. | Multi-dimensional computation distribution in a packet processing device having multiple processing architecture |
CN100407705C (en) * | 2006-04-12 | 2008-07-30 | 华为技术有限公司 | Router control method and system |
EP2016718B1 (en) | 2006-04-21 | 2014-02-12 | Oracle America, Inc. | Method and system for scaling by parallelizing network workload |
US7852850B2 (en) * | 2006-04-26 | 2010-12-14 | Marvell Israel (M.I.S.L.) Ltd. | Double-hash lookup mechanism for searching addresses in a network device |
US7865694B2 (en) * | 2006-05-12 | 2011-01-04 | International Business Machines Corporation | Three-dimensional networking structure |
EP1858228A1 (en) * | 2006-05-16 | 2007-11-21 | THOMSON Licensing | Network data storage system with distributed file management |
US7636813B2 (en) * | 2006-05-22 | 2009-12-22 | International Business Machines Corporation | Systems and methods for providing remote pre-fetch buffers |
US7594055B2 (en) * | 2006-05-24 | 2009-09-22 | International Business Machines Corporation | Systems and methods for providing distributed technology independent memory controllers |
DE102006025133A1 (en) * | 2006-05-30 | 2007-12-06 | Infineon Technologies Ag | Storage and storage communication system |
US7584336B2 (en) * | 2006-06-08 | 2009-09-01 | International Business Machines Corporation | Systems and methods for providing data modification operations in memory subsystems |
US7584286B2 (en) | 2006-06-28 | 2009-09-01 | Intel Corporation | Flexible and extensible receive side scaling |
US20080002681A1 (en) * | 2006-06-30 | 2008-01-03 | Symbol Technologies, Inc. | Network wireless/RFID switch architecture for multi-core hardware platforms using a multi-core abstraction layer (MCAL) |
US20080002702A1 (en) * | 2006-06-30 | 2008-01-03 | Symbol Technologies, Inc. | Systems and methods for processing data packets using a multi-core abstraction layer (MCAL) |
EP2035928A2 (en) * | 2006-06-30 | 2009-03-18 | Symbol Technologies, Inc. | Systems and methods for processing data packets using a multi-core abstraction layer (mcal) |
KR100724527B1 (en) * | 2006-07-11 | 2007-06-04 | 이평범 | Method for producing powder from residual pesticides of agricultural products and its manufacturing system |
US7724589B2 (en) | 2006-07-31 | 2010-05-25 | Google Inc. | System and method for delaying a signal communicated from a system to at least one of a plurality of memory circuits |
US7581073B2 (en) * | 2006-08-09 | 2009-08-25 | International Business Machines Corporation | Systems and methods for providing distributed autonomous power management in a memory system |
US20080263324A1 (en) * | 2006-08-10 | 2008-10-23 | Sehat Sutardja | Dynamic core switching |
WO2008045341A1 (en) * | 2006-10-05 | 2008-04-17 | Arc International | Inter-processor communication method |
CN100452757C (en) * | 2006-10-12 | 2009-01-14 | 杭州华三通信技术有限公司 | Message transferring method and device |
US7477522B2 (en) * | 2006-10-23 | 2009-01-13 | International Business Machines Corporation | High density high reliability memory module with a fault tolerant address and command bus |
WO2008050248A2 (en) * | 2006-10-27 | 2008-05-02 | Nokia Corporation | System and method for improved broadband wireless gateway reliability |
US7996348B2 (en) | 2006-12-08 | 2011-08-09 | Pandya Ashish A | 100GBPS security and search architecture using programmable intelligent search memory (PRISM) that comprises one or more bit interval counters |
US9141557B2 (en) | 2006-12-08 | 2015-09-22 | Ashish A. Pandya | Dynamic random access memory (DRAM) that comprises a programmable intelligent search memory (PRISM) and a cryptography processing engine |
CN101043446A (en) * | 2007-03-08 | 2007-09-26 | 华为技术有限公司 | Method and apparatus for data transmission process |
US7979683B1 (en) * | 2007-04-05 | 2011-07-12 | Nvidia Corporation | Multiple simultaneous context architecture |
US8095782B1 (en) | 2007-04-05 | 2012-01-10 | Nvidia Corporation | Multiple simultaneous context architecture for rebalancing contexts on multithreaded processing cores upon a context change |
ATE472476T1 (en) * | 2007-05-11 | 2010-07-15 | Sca Hygiene Prod Ab | PACKAGING AND SUPPLY DEVICE FOR GROUPING PRODUCT OBJECTS |
US7840821B2 (en) * | 2007-05-18 | 2010-11-23 | Globalfoundries Inc. | Method and apparatus for monitoring energy consumption of an electronic device |
US7552241B2 (en) * | 2007-05-18 | 2009-06-23 | Tilera Corporation | Method and system for managing a plurality of I/O interfaces with an array of multicore processor resources in a semiconductor chip |
US8209479B2 (en) | 2007-07-18 | 2012-06-26 | Google Inc. | Memory circuit system and method |
CN101350010B (en) * | 2007-07-20 | 2011-08-17 | 迈普通信技术股份有限公司 | Operation method of hash table |
US7921686B2 (en) * | 2007-08-28 | 2011-04-12 | Cisco Technology, Inc. | Highly scalable architecture for application network appliances |
US7865674B2 (en) * | 2007-08-31 | 2011-01-04 | International Business Machines Corporation | System for enhancing the memory bandwidth available through a memory module |
US7818497B2 (en) * | 2007-08-31 | 2010-10-19 | International Business Machines Corporation | Buffered memory module supporting two independent memory channels |
US7840748B2 (en) * | 2007-08-31 | 2010-11-23 | International Business Machines Corporation | Buffered memory module with multiple memory device data interface ports supporting double the memory capacity |
US7861014B2 (en) * | 2007-08-31 | 2010-12-28 | International Business Machines Corporation | System for supporting partial cache line read operations to a memory module to reduce read data traffic on a memory channel |
US8082482B2 (en) | 2007-08-31 | 2011-12-20 | International Business Machines Corporation | System for performing error correction operations in a memory hub device of a memory module |
US7899983B2 (en) * | 2007-08-31 | 2011-03-01 | International Business Machines Corporation | Buffered memory module supporting double the memory device data width in the same physical space as a conventional memory module |
US7584308B2 (en) * | 2007-08-31 | 2009-09-01 | International Business Machines Corporation | System for supporting partial cache line write operations to a memory module to reduce write data traffic on a memory channel |
US8086936B2 (en) | 2007-08-31 | 2011-12-27 | International Business Machines Corporation | Performing error correction at a memory device level that is transparent to a memory channel |
US7558887B2 (en) * | 2007-09-05 | 2009-07-07 | International Business Machines Corporation | Method for supporting partial cache line read and write operations to a memory module to reduce read and write data traffic on a memory channel |
US8019919B2 (en) | 2007-09-05 | 2011-09-13 | International Business Machines Corporation | Method for enhancing the memory bandwidth available through a memory module |
KR100899526B1 (en) * | 2007-09-07 | 2009-05-27 | 삼성네트웍스 주식회사 | Multiprocessor based packet processing apparatus and method |
US8080874B1 (en) | 2007-09-14 | 2011-12-20 | Google Inc. | Providing additional space between an integrated circuit and a circuit board for positioning a component therebetween |
US7890472B2 (en) | 2007-09-18 | 2011-02-15 | Microsoft Corporation | Parallel nested transactions in transactional memory |
US8539098B2 (en) * | 2007-10-17 | 2013-09-17 | Dispersive Networks, Inc. | Multiplexed client server (MCS) communications and systems |
US8560634B2 (en) | 2007-10-17 | 2013-10-15 | Dispersive Networks, Inc. | Apparatus, systems and methods utilizing dispersive networking |
US8838817B1 (en) | 2007-11-07 | 2014-09-16 | Netapp, Inc. | Application-controlled network packet classification |
US8019970B2 (en) * | 2007-11-28 | 2011-09-13 | International Business Machines Corporation | Three-dimensional networking design structure |
US20090172370A1 (en) * | 2007-12-31 | 2009-07-02 | Advanced Micro Devices, Inc. | Eager execution in a processing pipeline having multiple integer execution units |
US8086825B2 (en) * | 2007-12-31 | 2011-12-27 | Advanced Micro Devices, Inc. | Processing pipeline having stage-specific thread selection and method thereof |
US7793080B2 (en) * | 2007-12-31 | 2010-09-07 | Globalfoundries Inc. | Processing pipeline having parallel dispatch and method thereof |
US8375395B2 (en) * | 2008-01-03 | 2013-02-12 | L3 Communications Integrated Systems, L.P. | Switch-based parallel distributed cache architecture for memory access on reconfigurable computing platforms |
US7925826B2 (en) * | 2008-01-24 | 2011-04-12 | International Business Machines Corporation | System to increase the overall bandwidth of a memory channel by allowing the memory channel to operate at a frequency independent from a memory device frequency |
US7925825B2 (en) * | 2008-01-24 | 2011-04-12 | International Business Machines Corporation | System to support a full asynchronous interface within a memory hub device |
US8140936B2 (en) | 2008-01-24 | 2012-03-20 | International Business Machines Corporation | System for a combined error correction code and cyclic redundancy check code for a memory channel |
US7770077B2 (en) * | 2008-01-24 | 2010-08-03 | International Business Machines Corporation | Using cache that is embedded in a memory hub to replace failed memory cells in a memory subsystem |
US7925824B2 (en) * | 2008-01-24 | 2011-04-12 | International Business Machines Corporation | System to reduce latency by running a memory channel frequency fully asynchronous from a memory device frequency |
US7930469B2 (en) * | 2008-01-24 | 2011-04-19 | International Business Machines Corporation | System to provide memory system power reduction without reducing overall memory system performance |
US7930470B2 (en) * | 2008-01-24 | 2011-04-19 | International Business Machines Corporation | System to enable a memory hub device to manage thermal conditions at a memory device level transparent to a memory controller |
US9596324B2 (en) * | 2008-02-08 | 2017-03-14 | Broadcom Corporation | System and method for parsing and allocating a plurality of packets to processor core threads |
JP4621747B2 (en) * | 2008-02-15 | 2011-01-26 | 株式会社東芝 | Communication control apparatus and information processing apparatus |
US8510370B2 (en) * | 2008-02-26 | 2013-08-13 | Avid Technology, Inc. | Array-based distributed storage system with parity |
US8566833B1 (en) | 2008-03-11 | 2013-10-22 | Netapp, Inc. | Combined network and application processing in a multiprocessing environment |
US8209493B2 (en) * | 2008-03-26 | 2012-06-26 | Intel Corporation | Systems and methods for scheduling memory requests during memory throttling |
KR100976628B1 (en) * | 2008-05-09 | 2010-08-18 | 한국전자통신연구원 | Multiprocessor System and Multiple Processing Methods in the System |
US8094560B2 (en) * | 2008-05-19 | 2012-01-10 | Cisco Technology, Inc. | Multi-stage multi-core processing of network packets |
US8677453B2 (en) * | 2008-05-19 | 2014-03-18 | Cisco Technology, Inc. | Highly parallel evaluation of XACML policies |
US8667556B2 (en) * | 2008-05-19 | 2014-03-04 | Cisco Technology, Inc. | Method and apparatus for building and managing policies |
US20090288104A1 (en) * | 2008-05-19 | 2009-11-19 | Rohati Systems, Inc. | Extensibility framework of a network element |
JP5583893B2 (en) | 2008-05-28 | 2014-09-03 | 富士通株式会社 | Arithmetic processing device and control method of arithmetic processing device |
KR101427409B1 (en) * | 2008-05-30 | 2014-08-07 | 어드밴스드 마이크로 디바이시즈, 인코포레이티드 | Shader complex with distributed level one cache system and centralized level two cache |
US8194582B2 (en) * | 2008-06-30 | 2012-06-05 | The Boeing Company | Method and apparatus for hosting commercially-derived packet routers on satellite payloads |
US8031627B2 (en) | 2008-07-10 | 2011-10-04 | At&T Intellectual Property I, L.P. | Methods and apparatus to deploy and monitor network layer functionalities |
TWI362596B (en) * | 2008-07-23 | 2012-04-21 | Inst Information Industry | Intermediary apparatus, intermediary method, computer program product for storing a data in a storage apparatus, and data storage system comprising the same |
US7979671B2 (en) * | 2008-07-28 | 2011-07-12 | CacheIQ, Inc. | Dual hash indexing system and methodology |
JP5395383B2 (en) * | 2008-08-21 | 2014-01-22 | 株式会社東芝 | Control system with pipeline arithmetic processor |
US20100070471A1 (en) * | 2008-09-17 | 2010-03-18 | Rohati Systems, Inc. | Transactional application events |
US8484421B1 (en) | 2008-11-25 | 2013-07-09 | Marvell Israel (M.I.S.L) Ltd. | Cache pre-fetch architecture and method |
US8688911B1 (en) | 2008-11-25 | 2014-04-01 | Marvell Israel (M.I.S.L) Ltd. | Transparent processing core and L2 cache connection |
CN101799750B (en) * | 2009-02-11 | 2015-05-06 | 上海芯豪微电子有限公司 | Data processing method and device |
JP5081847B2 (en) * | 2009-02-20 | 2012-11-28 | 株式会社日立製作所 | Packet processing apparatus and packet processing method using multiprocessor |
US9461930B2 (en) | 2009-04-27 | 2016-10-04 | Intel Corporation | Modifying data streams without reordering in a multi-thread, multi-flow network processor |
US8514874B2 (en) * | 2010-03-12 | 2013-08-20 | Lsi Corporation | Thread synchronization in a multi-thread network communications processor architecture |
US9444757B2 (en) | 2009-04-27 | 2016-09-13 | Intel Corporation | Dynamic configuration of processing modules in a network communications processor architecture |
WO2010144624A1 (en) | 2009-06-09 | 2010-12-16 | Google Inc. | Programming of dimm termination resistance values |
US8565239B2 (en) * | 2009-07-14 | 2013-10-22 | Broadcom Corporation | Node based path selection randomization |
US8665879B2 (en) * | 2009-07-14 | 2014-03-04 | Broadcom Corporation | Flow based path selection randomization using parallel hash functions |
US9047217B2 (en) * | 2009-08-27 | 2015-06-02 | Cleversafe, Inc. | Nested distributed storage unit and applications thereof |
US8473818B2 (en) * | 2009-10-12 | 2013-06-25 | Empire Technology Development Llc | Reliable communications in on-chip networks |
US8484439B1 (en) * | 2009-10-27 | 2013-07-09 | Juniper Networks, Inc. | Scalable hash tables |
US8446824B2 (en) * | 2009-12-17 | 2013-05-21 | Intel Corporation | NUMA-aware scaling for network devices |
US8452835B2 (en) * | 2009-12-23 | 2013-05-28 | Citrix Systems, Inc. | Systems and methods for object rate limiting in multi-core system |
US9367462B2 (en) | 2009-12-29 | 2016-06-14 | Empire Technology Development Llc | Shared memories for energy efficient multi-core processors |
US8532129B2 (en) * | 2009-12-30 | 2013-09-10 | International Business Machines Corporation | Assigning work from multiple sources to multiple sinks given assignment constraints |
US8295305B2 (en) * | 2009-12-30 | 2012-10-23 | International Business Machines Corporation | Dual scheduling of work from multiple sources to multiple sinks using source and sink attributes to achieve fairness and processing efficiency |
US8391305B2 (en) * | 2009-12-30 | 2013-03-05 | International Business Machines Corporation | Assignment constraint matrix for assigning work from multiple sources to multiple sinks |
JP5477112B2 (en) * | 2010-03-31 | 2014-04-23 | 富士通株式会社 | Network system testing method |
US9015441B2 (en) | 2010-04-30 | 2015-04-21 | Microsoft Technology Licensing, Llc | Memory usage scanning |
US9491085B2 (en) * | 2010-05-24 | 2016-11-08 | At&T Intellectual Property I, L.P. | Methods and apparatus to route control packets based on address partitioning |
US8699484B2 (en) | 2010-05-24 | 2014-04-15 | At&T Intellectual Property I, L.P. | Methods and apparatus to route packets in a network |
US8559332B2 (en) * | 2010-05-25 | 2013-10-15 | Telefonaktiebolaget L M Ericsson (Publ) | Method for enhancing table lookups with exact and wildcards matching for parallel environments |
US8381004B2 (en) | 2010-05-26 | 2013-02-19 | International Business Machines Corporation | Optimizing energy consumption and application performance in a multi-core multi-threaded processor system |
EP2590083A4 (en) * | 2010-06-30 | 2016-04-20 | Fujitsu Ltd | DATA RESTORATION PROGRAM, DATA RESTORING DEVICE, AND DATA RESTORING METHOD |
CN102446087B (en) * | 2010-10-12 | 2014-02-26 | 无锡江南计算技术研究所 | Instruction prefetching method and device |
GB2485142A (en) | 2010-10-27 | 2012-05-09 | Nds Ltd | Secure broadcast/multicast of media content |
US8751720B2 (en) | 2010-11-08 | 2014-06-10 | Moon J. Kim | Computationally-networked unified data bus |
KR101153940B1 (en) * | 2010-11-09 | 2012-06-08 | 아주대학교산학협력단 | Device and the method for classifying packet |
US8955110B1 (en) | 2011-01-14 | 2015-02-10 | Robert W. Twitchell, Jr. | IP jamming systems utilizing virtual dispersive networking |
US8941659B1 (en) | 2011-01-28 | 2015-01-27 | Rescon Ltd | Medical symptoms tracking apparatus, methods and systems |
US8605732B2 (en) | 2011-02-15 | 2013-12-10 | Extreme Networks, Inc. | Method of providing virtual router functionality |
US9158592B2 (en) | 2011-05-02 | 2015-10-13 | Green Hills Software, Inc. | System and method for time variant scheduling of affinity groups comprising processor core and address spaces on a synchronized multicore processor |
CN102779110B (en) * | 2011-05-11 | 2014-08-06 | 扬智科技股份有限公司 | Multi-core system and its control method based on remote code call and data access |
JP2012243105A (en) * | 2011-05-19 | 2012-12-10 | Buffalo Inc | File management device and control program thereof |
US9996403B2 (en) | 2011-09-30 | 2018-06-12 | Oracle International Corporation | System and method for providing message queues for multinode applications in a middleware machine environment |
US9612934B2 (en) * | 2011-10-28 | 2017-04-04 | Cavium, Inc. | Network processor with distributed trace buffers |
US9330002B2 (en) * | 2011-10-31 | 2016-05-03 | Cavium, Inc. | Multi-core interconnect in a network processor |
US8850557B2 (en) | 2012-02-29 | 2014-09-30 | International Business Machines Corporation | Processor and data processing method with non-hierarchical computer security enhancements for context states |
WO2013072773A2 (en) * | 2011-11-18 | 2013-05-23 | Marvell World Trade Ltd. | Data path acceleration using hw virtualization |
US9075768B2 (en) | 2011-11-30 | 2015-07-07 | Rs Stata Llc | Hierarchical multi-core processor and method of programming for efficient data processing |
WO2013100984A1 (en) * | 2011-12-28 | 2013-07-04 | Intel Corporation | High bandwidth full-block write commands |
US9069912B2 (en) * | 2012-03-31 | 2015-06-30 | Qualcomm Technologies, Inc. | System and method of distributed initiator-local reorder buffers |
US9311228B2 (en) | 2012-04-04 | 2016-04-12 | International Business Machines Corporation | Power reduction in server memory system |
US9237128B2 (en) * | 2013-03-15 | 2016-01-12 | International Business Machines Corporation | Firewall packet filtering |
US8910179B2 (en) * | 2012-05-15 | 2014-12-09 | Freescale Semiconductor, Inc. | Systems and methods for providing semaphore-based protection of system resources |
US9514069B1 (en) | 2012-05-24 | 2016-12-06 | Schwegman, Lundberg & Woessner, P.A. | Enhanced computer processor and memory management architecture |
WO2014038582A1 (en) * | 2012-09-04 | 2014-03-13 | 日本電気株式会社 | Packet distribution device, packet distribution method, and packet distribution program |
US9164570B2 (en) * | 2012-12-13 | 2015-10-20 | Advanced Micro Devices, Inc. | Dynamic re-configuration for low power in a data processor |
US9417873B2 (en) | 2012-12-28 | 2016-08-16 | Intel Corporation | Apparatus and method for a hybrid latency-throughput processor |
US9361116B2 (en) | 2012-12-28 | 2016-06-07 | Intel Corporation | Apparatus and method for low-latency invocation of accelerators |
US10140129B2 (en) | 2012-12-28 | 2018-11-27 | Intel Corporation | Processing core having shared front end unit |
US10346195B2 (en) | 2012-12-29 | 2019-07-09 | Intel Corporation | Apparatus and method for invocation of a multi threaded accelerator |
KR101448951B1 (en) * | 2013-02-27 | 2014-10-13 | 주식회사 시큐아이 | Apparatus and method for processing packet |
US8954992B2 (en) * | 2013-03-15 | 2015-02-10 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Distributed and scaled-out network switch and packet processing |
CN105229980B (en) * | 2013-04-11 | 2018-11-16 | 马维尔以色列(M.I.S.L.)有限公司 | Utilize the method and apparatus of the exact-match lookup of variable keyword size |
KR101499890B1 (en) * | 2013-05-15 | 2015-03-06 | 주식회사 코스콤 | Low Latency Framework System |
US9454196B2 (en) | 2013-06-27 | 2016-09-27 | Apple Inc. | Active peak power management of a high performance embedded microprocessor cluster |
CN104302100A (en) * | 2013-07-18 | 2015-01-21 | 群联电子股份有限公司 | Pad structure and printed circuit board and memory storage device using the same |
JP5742908B2 (en) * | 2013-10-03 | 2015-07-01 | 富士通株式会社 | Multi-core processor system, control method, and control program |
CN104572275B (en) * | 2013-10-23 | 2017-12-29 | 华为技术有限公司 | A kind of process loading method, apparatus and system |
US9825857B2 (en) * | 2013-11-05 | 2017-11-21 | Cisco Technology, Inc. | Method for increasing Layer-3 longest prefix match scale |
US10515231B2 (en) * | 2013-11-08 | 2019-12-24 | Symcor Inc. | Method of obfuscating relationships between data in database tables |
GB201322883D0 (en) * | 2013-12-23 | 2014-02-12 | Bae Systems Plc | Data capture |
US10122609B2 (en) | 2013-12-23 | 2018-11-06 | Bae Systems Plc | Data capture |
KR20150086718A (en) * | 2014-01-20 | 2015-07-29 | 삼성전자주식회사 | Method and Apparatus for processing data by pipeline using memory |
US10078613B1 (en) * | 2014-03-05 | 2018-09-18 | Mellanox Technologies, Ltd. | Computing in parallel processing environments |
US10721160B2 (en) | 2014-05-15 | 2020-07-21 | Samsung Electronics Co., Ltd. | Method of distributing data and device supporting the same |
US9413783B1 (en) * | 2014-06-02 | 2016-08-09 | Amazon Technologies, Inc. | Network interface with on-board packet processing |
US9825913B2 (en) * | 2014-06-04 | 2017-11-21 | Nicira, Inc. | Use of stateless marking to speed up stateful firewall rule processing |
CN105591914B (en) * | 2014-10-21 | 2020-07-03 | 中兴通讯股份有限公司 | A kind of openflow flow table look-up method and device |
US10230824B2 (en) * | 2014-11-17 | 2019-03-12 | Keysight Technologies Singapore (Holdings) Pte. Lte. | Packet classification using memory pointer information |
DE102015200301A1 (en) | 2015-01-13 | 2016-07-14 | Robert Bosch Gmbh | Method for classifying a data segment with regard to its further processing |
US9830187B1 (en) * | 2015-06-05 | 2017-11-28 | Apple Inc. | Scheduler and CPU performance controller cooperation |
CN105468705A (en) * | 2015-11-18 | 2016-04-06 | 广东南方通信建设有限公司 | Mobile communication background data file importing method |
CN106059792B (en) * | 2016-05-13 | 2019-03-29 | 北京英诺威尔科技股份有限公司 | A kind of flow analyzing and processing method of low latency |
CN107077390B (en) * | 2016-07-29 | 2021-06-29 | 华为技术有限公司 | Task processing method and network card |
US20180122038A1 (en) * | 2016-10-28 | 2018-05-03 | Qualcomm Incorporated | Multi-layer fetch during composition |
US11392488B2 (en) | 2017-04-07 | 2022-07-19 | Keysight Technologies Singapore (Sales) Pte. Ltd. | Optimizing storage of application data in memory |
JP6390748B1 (en) * | 2017-04-19 | 2018-09-19 | 富士通株式会社 | Information processing apparatus, information processing method, and information processing program |
US10956220B2 (en) | 2017-06-04 | 2021-03-23 | Apple Inc. | Scheduler for amp architecture using a closed loop performance and thermal controller |
US10681607B2 (en) * | 2018-06-22 | 2020-06-09 | Intel Corporation | Receive-side scaling for wireless communication devices |
CN109729021A (en) * | 2018-12-27 | 2019-05-07 | 北京天融信网络安全技术有限公司 | A kind of message processing method and electronic equipment |
US11488650B2 (en) * | 2020-04-06 | 2022-11-01 | Memryx Incorporated | Memory processing unit architecture |
CN111225021B (en) * | 2019-11-13 | 2020-11-27 | 北京连山时代科技有限公司 | Multilink concurrent transmission method and system based on file fragmentation and recombination |
US11210248B2 (en) | 2019-12-20 | 2021-12-28 | Advanced Micro Devices, Inc. | System direct memory access engine offload |
WO2021234765A1 (en) * | 2020-05-18 | 2021-11-25 | 日本電信電話株式会社 | Packet identification device, packet identification method, and packet identification program |
US11303609B2 (en) | 2020-07-02 | 2022-04-12 | Vmware, Inc. | Pre-allocating port groups for a very large scale NAT engine |
US11115381B1 (en) | 2020-11-30 | 2021-09-07 | Vmware, Inc. | Hybrid and efficient method to sync NAT sessions |
US20230195530A1 (en) * | 2021-12-17 | 2023-06-22 | Apple Inc. | Systems and Methods for Balancing Loads Across Multiple Processing Cores of a Wireless Device |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5226171A (en) * | 1984-12-03 | 1993-07-06 | Cray Research, Inc. | Parallel vector processing system for individual and broadcast distribution of operands and control information |
US5889622A (en) * | 1996-07-31 | 1999-03-30 | U.S. Philips Corporation | Data processing device including a microprocessor and an additional arithmetic unit |
US5892966A (en) * | 1997-06-27 | 1999-04-06 | Sun Microsystems, Inc. | Processor complex for executing multimedia functions |
US6209098B1 (en) * | 1996-10-25 | 2001-03-27 | Intel Corporation | Circuit and method for ensuring interconnect security with a multi-chip integrated circuit package |
US20010016910A1 (en) * | 2000-01-12 | 2001-08-23 | Chiaki Tanimoto | IC card and microprocessor |
US20010052070A1 (en) * | 2000-05-29 | 2001-12-13 | Toshihisa Oishi | Authentication communicating semiconductor device |
US6334180B1 (en) * | 1999-06-27 | 2001-12-25 | Sun Microsystems, Inc. | Processor coupled by visible register set to modular coprocessor including integrated multimedia unit |
US20020027988A1 (en) * | 1998-08-26 | 2002-03-07 | Roy Callum | Cryptographic accelerator |
US6424987B1 (en) * | 1998-02-26 | 2002-07-23 | Stmicroelectronics S.A. | Method for the implementation of a specific modular multiplication operation relating to the montgomery method |
US6963977B2 (en) * | 2000-12-19 | 2005-11-08 | International Business Machines Corporation | Circuits and methods for modular exponentiation |
US6968453B2 (en) * | 2001-01-17 | 2005-11-22 | International Business Machines Corporation | Secure integrated device with secure, dynamically-selectable capabilities |
Family Cites Families (57)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3736569A (en) * | 1971-10-13 | 1973-05-29 | Ibm | System for controlling power consumption in a computer |
US4096571A (en) * | 1976-09-08 | 1978-06-20 | Codex Corporation | System for resolving memory access conflicts among processors and minimizing processor waiting times for access to memory by comparing waiting times and breaking ties by an arbitrary priority ranking |
US4777595A (en) * | 1982-05-07 | 1988-10-11 | Digital Equipment Corporation | Apparatus for transferring blocks of information from one node to a second node in a computer network |
US4754394A (en) | 1984-10-24 | 1988-06-28 | International Business Machines Corporation | Multiprocessing system having dynamically allocated local/global storage and including interleaving transformation circuit for transforming real addresses to corresponding absolute address of the storage |
US4744078A (en) * | 1985-05-13 | 1988-05-10 | Gould Inc. | Multiple path multiplexed host to network data communication system |
JPS63163912A (en) * | 1986-12-26 | 1988-07-07 | Toshiba Corp | Microcomputer system |
JPH05503181A (en) * | 1990-11-26 | 1993-05-27 | アダプティブ・ソリューションズ・インコーポレーテッド | Temperature sensing control system and method for integrated circuits |
US5422654A (en) * | 1991-10-17 | 1995-06-06 | Chips And Technologies, Inc. | Data stream converter with increased grey levels |
US5583561A (en) * | 1994-06-07 | 1996-12-10 | Unisys Corporation | Multi-cast digital video data server using synchronization groups |
DE4421640C1 (en) * | 1994-06-21 | 1995-08-03 | Siemens Ag | Hash addressing and storage for distribution and recovery of data |
US5671377A (en) * | 1994-07-19 | 1997-09-23 | David Sarnoff Research Center, Inc. | System for supplying streams of data to multiple users by distributing a data stream to multiple processors and enabling each user to manipulate supplied data stream |
US5838603A (en) * | 1994-10-11 | 1998-11-17 | Matsushita Electric Industrial Co., Ltd. | Semiconductor device and method for fabricating the same, memory core chip and memory peripheral circuit chip |
US5878217A (en) * | 1994-11-21 | 1999-03-02 | Cirrus Logic, Inc. | Network controller for switching into DMA mode based on anticipated memory overflow and out of DMA mode when the host processor is available |
JP3132749B2 (en) | 1994-12-05 | 2001-02-05 | インターナショナル・ビジネス・マシーンズ・コーポレ−ション | Multiprocessor data processing system |
JPH096633A (en) | 1995-06-07 | 1997-01-10 | Internatl Business Mach Corp <Ibm> | Method and system for operation of high-performance multiplelogical route in data-processing system |
EP0777182B1 (en) | 1995-11-28 | 2001-07-04 | Bull S.A. | A memory access limiter for random access dynamic memories |
US5923654A (en) * | 1996-04-25 | 1999-07-13 | Compaq Computer Corp. | Network switch that includes a plurality of shared packet buffers |
US5764896A (en) * | 1996-06-28 | 1998-06-09 | Compaq Computer Corporation | Method and system for reducing transfer latency when transferring data from a network to a computer system |
US5802576A (en) * | 1996-07-01 | 1998-09-01 | Sun Microsystems, Inc. | Speculative cache snoop during DMA line update |
US5778243A (en) * | 1996-07-03 | 1998-07-07 | International Business Machines Corporation | Multi-threaded cell for a memory |
US5895487A (en) | 1996-11-13 | 1999-04-20 | International Business Machines Corporation | Integrated processing and L2 DRAM cache |
US6088788A (en) | 1996-12-27 | 2000-07-11 | International Business Machines Corporation | Background completion of instruction and associated fetch request in a multithread processor |
US6098110A (en) * | 1996-12-30 | 2000-08-01 | Compaq Computer Corporation | Network switch with a multiple bus structure and a bridge interface for transferring network data between different buses |
US5974496A (en) * | 1997-01-02 | 1999-10-26 | Ncr Corporation | System for transferring diverse data objects between a mass storage device and a network via an internal bus on a network card |
US6393021B1 (en) * | 1997-02-14 | 2002-05-21 | Advanced Micro Devices, Inc. | Integrated multiport switch having shared data receive FIFO structure |
US6151681A (en) * | 1997-06-25 | 2000-11-21 | Texas Instruments Incorporated | Dynamic device power management |
US6094435A (en) * | 1997-06-30 | 2000-07-25 | Sun Microsystems, Inc. | System and method for a quality of service in a multi-layer network element |
US6567839B1 (en) | 1997-10-23 | 2003-05-20 | International Business Machines Corporation | Thread switch control in a multithreaded processor system |
US6272520B1 (en) | 1997-12-31 | 2001-08-07 | Intel Corporation | Method for detecting thread switch events |
US6151685A (en) * | 1998-05-15 | 2000-11-21 | International Business Machines Corporation | System and method for recovering a segment directory for a log structured array |
US6216205B1 (en) * | 1998-05-21 | 2001-04-10 | Integrated Device Technology, Inc. | Methods of controlling memory buffers having tri-port cache arrays therein |
US6021076A (en) * | 1998-07-16 | 2000-02-01 | Rambus Inc | Apparatus and method for thermal regulation in memory subsystems |
JP3374820B2 (en) * | 1999-01-08 | 2003-02-10 | セイコーエプソン株式会社 | Output buffer circuit |
US6453360B1 (en) * | 1999-03-01 | 2002-09-17 | Sun Microsystems, Inc. | High performance network interface |
US7243133B2 (en) * | 1999-03-30 | 2007-07-10 | Sedna Patent Services, Llc | Method and apparatus for reducing latency in an interactive information distribution system |
US6938147B1 (en) * | 1999-05-11 | 2005-08-30 | Sun Microsystems, Inc. | Processor with multiple-thread, vertically-threaded pipeline |
US6341347B1 (en) * | 1999-05-11 | 2002-01-22 | Sun Microsystems, Inc. | Thread switch logic in a multiple-thread processor |
JP2001043084A (en) * | 1999-05-24 | 2001-02-16 | Toshiba Microelectronics Corp | Processor system |
US6751698B1 (en) * | 1999-09-29 | 2004-06-15 | Silicon Graphics, Inc. | Multiprocessor node controller circuit and method |
US6434662B1 (en) * | 1999-11-02 | 2002-08-13 | Juniper Networks, Inc. | System and method for searching an associative memory utilizing first and second hash functions |
US6950434B1 (en) * | 1999-12-07 | 2005-09-27 | Advanced Micro Devices, Inc. | Arrangement for searching packet policies using multi-key hash searches in a network switch |
PL354956A1 (en) * | 2000-03-31 | 2004-03-22 | General Dynamics Decision Systems, Inc. | Scalable cryptographic engine |
WO2001078309A2 (en) | 2000-04-11 | 2001-10-18 | P-Cube Ltd. | A method and apparatus for wire-speed application layer classification of data packets |
US6845099B2 (en) * | 2000-06-14 | 2005-01-18 | Mindspeed Technologies, Inc. | Communication packet processor with a look-up engine and content-addressable memory for modifying selectors to retrieve context information for a core processor |
US6754662B1 (en) * | 2000-08-01 | 2004-06-22 | Nortel Networks Limited | Method and apparatus for fast and consistent packet classification via efficient hash-caching |
US6567900B1 (en) * | 2000-08-31 | 2003-05-20 | Hewlett-Packard Development Company, L.P. | Efficient address interleaving with simultaneous multiple locality options |
US6785783B2 (en) | 2000-11-30 | 2004-08-31 | International Business Machines Corporation | NUMA system with redundant main memory architecture |
US20020083344A1 (en) * | 2000-12-21 | 2002-06-27 | Vairavan Kannan P. | Integrated intelligent inter/intra networking device |
US6463510B1 (en) * | 2000-12-29 | 2002-10-08 | Compaq Information Technologies Group, L.P. | Apparatus for identifying memory requests originating on remote I/O devices as noncacheable |
US6980550B1 (en) * | 2001-01-16 | 2005-12-27 | Extreme Networks, Inc | Method and apparatus for server load balancing |
US20020184487A1 (en) * | 2001-03-23 | 2002-12-05 | Badamo Michael J. | System and method for distributing security processing functions for network applications |
US6874014B2 (en) * | 2001-05-29 | 2005-03-29 | Hewlett-Packard Development Company, L.P. | Chip multiprocessor with multiple operating systems |
US7114011B2 (en) * | 2001-08-30 | 2006-09-26 | Intel Corporation | Multiprocessor-scalable streaming data server arrangement |
US6904040B2 (en) * | 2001-10-05 | 2005-06-07 | International Business Machines Corporaiton | Packet preprocessing interface for multiprocessor network handler |
US7283538B2 (en) * | 2001-10-12 | 2007-10-16 | Vormetric, Inc. | Load balanced scalable network gateway processor architecture |
US7145914B2 (en) * | 2001-12-31 | 2006-12-05 | Maxxan Systems, Incorporated | System and method for controlling data paths of a network processor subsystem |
US7036040B2 (en) * | 2002-11-26 | 2006-04-25 | Microsoft Corporation | Reliability of diskless network-bootable computers using non-volatile memory cache |
-
2002
- 2002-10-16 US US10/272,783 patent/US7248585B2/en active Active
- 2002-10-16 US US10/272,784 patent/US6901491B2/en not_active Expired - Lifetime
- 2002-10-16 US US10/272,786 patent/US7209996B2/en not_active Expired - Lifetime
- 2002-10-17 US US10/273,829 patent/US20030105907A1/en not_active Abandoned
- 2002-10-18 WO PCT/US2002/033323 patent/WO2003036450A2/en active Application Filing
- 2002-10-18 US US10/273,806 patent/US6938119B2/en not_active Expired - Lifetime
- 2002-10-18 JP JP2003538929A patent/JP3789454B2/en not_active Expired - Lifetime
- 2002-10-18 EP EP02780481A patent/EP1442355B1/en not_active Expired - Lifetime
- 2002-10-18 EP EP02789223A patent/EP1438667B1/en not_active Expired - Lifetime
- 2002-10-18 WO PCT/US2002/033441 patent/WO2003036485A2/en active IP Right Grant
- 2002-10-18 JP JP2003538907A patent/JP3926795B2/en not_active Expired - Lifetime
- 2002-10-18 KR KR10-2004-7005999A patent/KR20050013191A/en not_active Application Discontinuation
- 2002-10-18 EP EP02795530A patent/EP1442365A2/en not_active Ceased
- 2002-10-18 KR KR10-2004-7005998A patent/KR20040083464A/en not_active Application Discontinuation
- 2002-10-18 DE DE60236309T patent/DE60236309D1/en not_active Expired - Lifetime
- 2002-10-18 US US10/273,718 patent/US20030084309A1/en not_active Abandoned
- 2002-10-18 DE DE60211730T patent/DE60211730T2/en not_active Expired - Fee Related
- 2002-10-18 WO PCT/US2002/033321 patent/WO2003036508A2/en not_active Application Discontinuation
- 2002-10-18 KR KR10-2004-7005902A patent/KR20040091608A/en not_active Application Discontinuation
- 2002-10-18 JP JP2003538872A patent/JP3768993B2/en not_active Expired - Lifetime
- 2002-10-21 EP EP02770646A patent/EP1442374B1/en not_active Expired - Lifetime
- 2002-10-21 CN CNB028259432A patent/CN1286019C/en not_active Expired - Fee Related
- 2002-10-21 EP EP02773845A patent/EP1438818B1/en not_active Expired - Lifetime
- 2002-10-21 KR KR10-2004-7005903A patent/KR20040084893A/en not_active Application Discontinuation
- 2002-10-21 KR KR10-2004-7005904A patent/KR20040080431A/en not_active Application Discontinuation
- 2002-10-21 WO PCT/US2002/033763 patent/WO2003036884A2/en active Search and Examination
- 2002-10-21 JP JP2003539249A patent/JP2005508032A/en active Pending
- 2002-10-21 JP JP2003539266A patent/JP2005507212A/en active Pending
- 2002-10-21 DE DE60239227T patent/DE60239227D1/en not_active Expired - Lifetime
- 2002-10-21 AU AU2002335878A patent/AU2002335878A1/en not_active Abandoned
- 2002-10-21 EP EP02770647A patent/EP1466448B1/en not_active Expired - Lifetime
- 2002-10-21 JP JP2003538904A patent/JP4472339B2/en not_active Expired - Lifetime
- 2002-10-21 WO PCT/US2002/033762 patent/WO2003036482A2/en active Application Filing
- 2002-10-21 WO PCT/US2002/033766 patent/WO2003036902A2/en active Application Filing
- 2002-10-21 AT AT02770646T patent/ATE518192T1/en not_active IP Right Cessation
- 2002-10-21 AU AU2002337940A patent/AU2002337940A1/en not_active Abandoned
- 2002-10-21 KR KR10-2004-7005905A patent/KR20050012220A/en not_active Application Discontinuation
- 2002-10-21 DE DE60237222T patent/DE60237222D1/en not_active Expired - Lifetime
- 2002-10-22 TW TW091124449A patent/TWI240163B/en not_active IP Right Cessation
-
2007
- 2007-03-14 US US11/686,317 patent/US7865667B2/en not_active Expired - Lifetime
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5226171A (en) * | 1984-12-03 | 1993-07-06 | Cray Research, Inc. | Parallel vector processing system for individual and broadcast distribution of operands and control information |
US5889622A (en) * | 1996-07-31 | 1999-03-30 | U.S. Philips Corporation | Data processing device including a microprocessor and an additional arithmetic unit |
US6209098B1 (en) * | 1996-10-25 | 2001-03-27 | Intel Corporation | Circuit and method for ensuring interconnect security with a multi-chip integrated circuit package |
US5892966A (en) * | 1997-06-27 | 1999-04-06 | Sun Microsystems, Inc. | Processor complex for executing multimedia functions |
US6424987B1 (en) * | 1998-02-26 | 2002-07-23 | Stmicroelectronics S.A. | Method for the implementation of a specific modular multiplication operation relating to the montgomery method |
US20020027988A1 (en) * | 1998-08-26 | 2002-03-07 | Roy Callum | Cryptographic accelerator |
US6334180B1 (en) * | 1999-06-27 | 2001-12-25 | Sun Microsystems, Inc. | Processor coupled by visible register set to modular coprocessor including integrated multimedia unit |
US20010016910A1 (en) * | 2000-01-12 | 2001-08-23 | Chiaki Tanimoto | IC card and microprocessor |
US20010052070A1 (en) * | 2000-05-29 | 2001-12-13 | Toshihisa Oishi | Authentication communicating semiconductor device |
US6963977B2 (en) * | 2000-12-19 | 2005-11-08 | International Business Machines Corporation | Circuits and methods for modular exponentiation |
US6968453B2 (en) * | 2001-01-17 | 2005-11-22 | International Business Machines Corporation | Secure integrated device with secure, dynamically-selectable capabilities |
Cited By (104)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7600131B1 (en) | 1999-07-08 | 2009-10-06 | Broadcom Corporation | Distributed processing in a cryptography acceleration chip |
US7996670B1 (en) | 1999-07-08 | 2011-08-09 | Broadcom Corporation | Classification engine in a cryptography acceleration chip |
US8315381B2 (en) | 2002-03-28 | 2012-11-20 | Broadcom Corporation | Methods and apparatus performing hash operations in a cryptography accelerator |
US7400722B2 (en) * | 2002-03-28 | 2008-07-15 | Broadcom Corporation | Methods and apparatus for performing hash operations in a cryptography accelerator |
US20030185391A1 (en) * | 2002-03-28 | 2003-10-02 | Broadcom Corporation | Methods and apparatus for performing hash operations in a cryptography accelerator |
US20090028326A1 (en) * | 2002-03-28 | 2009-01-29 | Broadcom Corporation | Methods and apparatus performing hash operations in a cryptography accelerator |
US7434043B2 (en) | 2002-12-18 | 2008-10-07 | Broadcom Corporation | Cryptography accelerator data routing unit |
US20040123119A1 (en) * | 2002-12-18 | 2004-06-24 | Broadcom Corporation | Cryptography accelerator interface decoupling from cryptography processing cores |
US20040123120A1 (en) * | 2002-12-18 | 2004-06-24 | Broadcom Corporation | Cryptography accelerator input interface data handling |
US7568110B2 (en) * | 2002-12-18 | 2009-07-28 | Broadcom Corporation | Cryptography accelerator interface decoupling from cryptography processing cores |
US20040123123A1 (en) * | 2002-12-18 | 2004-06-24 | Buer Mark L. | Methods and apparatus for accessing security association information in a cryptography accelerator |
US7392399B2 (en) * | 2003-05-05 | 2008-06-24 | Sun Microsystems, Inc. | Methods and systems for efficiently integrating a cryptographic co-processor |
GB2416224B (en) * | 2003-05-05 | 2007-02-14 | Sun Microsystems Inc | Methods and systems for efficiently integrating a cryptographic co-processor |
US20040225885A1 (en) * | 2003-05-05 | 2004-11-11 | Sun Microsystems, Inc | Methods and systems for efficiently integrating a cryptographic co-processor |
US20040230813A1 (en) * | 2003-05-12 | 2004-11-18 | International Business Machines Corporation | Cryptographic coprocessor on a general purpose microprocessor |
US20050210280A1 (en) * | 2004-03-19 | 2005-09-22 | Nokia Corporation | Practical and secure storage encryption |
US8028164B2 (en) * | 2004-03-19 | 2011-09-27 | Nokia Corporation | Practical and secure storage encryption |
US20050256920A1 (en) * | 2004-05-14 | 2005-11-17 | Crispin Thomas A | Microprocessor apparatus and method for modular exponentiation |
US7664810B2 (en) * | 2004-05-14 | 2010-02-16 | Via Technologies, Inc. | Microprocessor apparatus and method for modular exponentiation |
US20080133797A1 (en) * | 2004-07-30 | 2008-06-05 | International Business Machines Corporation | System, method and storage medium for a multi-mode memory buffer device |
US20060036826A1 (en) * | 2004-07-30 | 2006-02-16 | International Business Machines Corporation | System, method and storage medium for providing a bus speed multiplier |
US7765368B2 (en) | 2004-07-30 | 2010-07-27 | International Business Machines Corporation | System, method and storage medium for providing a serialized memory interface with a bus repeater |
US20070300129A1 (en) * | 2004-10-29 | 2007-12-27 | International Business Machines Corporation | System, method and storage medium for providing fault detection and correction in a memory subsystem |
US20080040569A1 (en) * | 2004-10-29 | 2008-02-14 | International Business Machines Corporation | System, method and storage medium for bus calibration in a memory subsystem |
US8296541B2 (en) | 2004-10-29 | 2012-10-23 | International Business Machines Corporation | Memory subsystem with positional read data latency |
US7844771B2 (en) | 2004-10-29 | 2010-11-30 | International Business Machines Corporation | System, method and storage medium for a memory subsystem command interface |
US20080177929A1 (en) * | 2004-10-29 | 2008-07-24 | International Business Machines Corporation | System, method and storage medium for a memory subsystem command interface |
US20060107186A1 (en) * | 2004-10-29 | 2006-05-18 | International Business Machines Corporation | System, method and storage medium for providing a high speed test interface to a memory subsystem |
US20070294466A1 (en) * | 2004-10-29 | 2007-12-20 | International Business Machines Corporation | System, method and storage medium for a memory subsystem command interface |
US20060095629A1 (en) * | 2004-10-29 | 2006-05-04 | International Business Machines Corporation | System, method and storage medium for providing a service interface to a memory system |
US8589769B2 (en) | 2004-10-29 | 2013-11-19 | International Business Machines Corporation | System, method and storage medium for providing fault detection and correction in a memory subsystem |
US20060095671A1 (en) * | 2004-10-29 | 2006-05-04 | International Business Machines Corporation | System, method and storage medium for providing data caching and data compression in a memory subsystem |
US8140942B2 (en) | 2004-10-29 | 2012-03-20 | International Business Machines Corporation | System, method and storage medium for providing fault detection and correction in a memory subsystem |
US20080313374A1 (en) * | 2004-10-29 | 2008-12-18 | International Business Machines Corporation | Service interface to a memory system |
US20060095701A1 (en) * | 2004-10-29 | 2006-05-04 | International Business Machines Corporation | System, method and storage medium for a memory subsystem with positional read data latency |
US20060095620A1 (en) * | 2004-10-29 | 2006-05-04 | International Business Machines Corporation | System, method and storage medium for merging bus data in a memory subsystem |
US20060107175A1 (en) * | 2004-10-29 | 2006-05-18 | International Business Machines Corporation | System, method and storage medium for providing fault detection and correction in a memory subsystem |
US20070088959A1 (en) * | 2004-12-15 | 2007-04-19 | Cox Michael B | Chipset security offload engine |
US8473750B2 (en) | 2004-12-15 | 2013-06-25 | Nvidia Corporation | Chipset security offload engine |
US7920701B1 (en) | 2004-12-15 | 2011-04-05 | Nvidia Corporation | System and method for digital content protection |
US8756605B2 (en) | 2004-12-17 | 2014-06-17 | Oracle America, Inc. | Method and apparatus for scheduling multiple threads for execution in a shared microprocessor pipeline |
US20060136915A1 (en) * | 2004-12-17 | 2006-06-22 | Sun Microsystems, Inc. | Method and apparatus for scheduling multiple threads for execution in a shared microprocessor pipeline |
US9264426B2 (en) | 2004-12-20 | 2016-02-16 | Broadcom Corporation | System and method for authentication via a proximate device |
US20060133604A1 (en) * | 2004-12-21 | 2006-06-22 | Mark Buer | System and method for securing data from a remote input device |
US8295484B2 (en) | 2004-12-21 | 2012-10-23 | Broadcom Corporation | System and method for securing data from a remote input device |
US9288192B2 (en) | 2004-12-21 | 2016-03-15 | Broadcom Corporation | System and method for securing data from a remote input device |
US7934115B2 (en) | 2005-10-31 | 2011-04-26 | International Business Machines Corporation | Deriving clocks in a memory system |
US20070101086A1 (en) * | 2005-10-31 | 2007-05-03 | International Business Machines Corporation | System, method and storage medium for deriving clocks in a memory system |
US8145868B2 (en) | 2005-11-28 | 2012-03-27 | International Business Machines Corporation | Method and system for providing frame start indication in a memory system having indeterminate read data latency |
US8327105B2 (en) | 2005-11-28 | 2012-12-04 | International Business Machines Corporation | Providing frame start indication in a memory system having indeterminate read data latency |
US8495328B2 (en) | 2005-11-28 | 2013-07-23 | International Business Machines Corporation | Providing frame start indication in a memory system having indeterminate read data latency |
US8151042B2 (en) | 2005-11-28 | 2012-04-03 | International Business Machines Corporation | Method and system for providing identification tags in a memory system having indeterminate data response times |
US20070183331A1 (en) * | 2005-11-28 | 2007-08-09 | International Business Machines Corporation | Method and system for providing indeterminate read data latency in a memory system |
US7685392B2 (en) | 2005-11-28 | 2010-03-23 | International Business Machines Corporation | Providing indeterminate read data latency in a memory system |
US20070286199A1 (en) * | 2005-11-28 | 2007-12-13 | International Business Machines Corporation | Method and system for providing identification tags in a memory system having indeterminate data response times |
EP1801725A2 (en) * | 2005-12-14 | 2007-06-27 | Nvidia Corporation | Chipset security offload engine |
EP1801725A3 (en) * | 2005-12-14 | 2007-07-11 | Nvidia Corporation | Chipset security offload engine |
US20070192547A1 (en) * | 2005-12-30 | 2007-08-16 | Feghali Wajdi K | Programmable processing unit |
US20070192626A1 (en) * | 2005-12-30 | 2007-08-16 | Feghali Wajdi K | Exponent windowing |
US7725624B2 (en) * | 2005-12-30 | 2010-05-25 | Intel Corporation | System and method for cryptography processing units and multiplier |
US20070157030A1 (en) * | 2005-12-30 | 2007-07-05 | Feghali Wajdi K | Cryptographic system component |
US20080013715A1 (en) * | 2005-12-30 | 2008-01-17 | Feghali Wajdi K | Cryptography processing units and multiplier |
US7900022B2 (en) * | 2005-12-30 | 2011-03-01 | Intel Corporation | Programmable processing unit with an input buffer and output buffer configured to exclusively exchange data with either a shared memory logic or a multiplier based upon a mode instruction |
US20070276977A1 (en) * | 2006-05-24 | 2007-11-29 | International Business Machines Corporation | Systems and methods for providing memory modules with multiple hub devices |
US20080034148A1 (en) * | 2006-08-01 | 2008-02-07 | International Business Machines Corporation | Systems and methods for providing performance monitoring in a memory system |
US7669086B2 (en) | 2006-08-02 | 2010-02-23 | International Business Machines Corporation | Systems and methods for providing collision detection in a memory system |
US20080040563A1 (en) * | 2006-08-10 | 2008-02-14 | International Business Machines Corporation | Systems and methods for memory module power management |
US7870459B2 (en) | 2006-10-23 | 2011-01-11 | International Business Machines Corporation | High density high reliability memory module with power gating and a fault tolerant address and command bus |
US20080098277A1 (en) * | 2006-10-23 | 2008-04-24 | International Business Machines Corporation | High density high reliability memory module with power gating and a fault tolerant address and command bus |
US20080109903A1 (en) * | 2006-11-07 | 2008-05-08 | Spansion Llc | Secure co-processing memory controller integrated into an embedded memory subsystem |
TWI393148B (en) * | 2006-11-07 | 2013-04-11 | Spansion Llc | Secure co-processing memory controller integrated into an embedded memory subsystem and method of optimizing processor utilization and creating a heightened level of security |
US8356361B2 (en) * | 2006-11-07 | 2013-01-15 | Spansion Llc | Secure co-processing memory controller integrated into an embedded memory subsystem |
US7721140B2 (en) | 2007-01-02 | 2010-05-18 | International Business Machines Corporation | Systems and methods for improving serviceability of a memory system |
US20080162991A1 (en) * | 2007-01-02 | 2008-07-03 | International Business Machines Corporation | Systems and methods for improving serviceability of a memory system |
US20080183903A1 (en) * | 2007-01-29 | 2008-07-31 | International Business Machines Corporation | Systems and methods for providing dynamic memory pre-fetch |
US20090037631A1 (en) * | 2007-07-31 | 2009-02-05 | Viasat, Inc. | Input Output Access Controller |
US8392983B2 (en) | 2007-07-31 | 2013-03-05 | Viasat, Inc. | Trusted labeler |
US20090034734A1 (en) * | 2007-07-31 | 2009-02-05 | Viasat, Inc. | Multi-Level Key Manager |
US8312292B2 (en) * | 2007-07-31 | 2012-11-13 | Viasat, Inc. | Input output access controller |
US20090158050A1 (en) * | 2007-07-31 | 2009-06-18 | Viasat, Inc. | Trusted Labeler |
US8918650B2 (en) * | 2007-10-30 | 2014-12-23 | Sandisk Il Ltd. | Secure data processing for unaligned data |
US20090113218A1 (en) * | 2007-10-30 | 2009-04-30 | Sandisk Il Ltd. | Secure data processing for unaligned data |
US20090119114A1 (en) * | 2007-11-02 | 2009-05-07 | David Alaniz | Systems and Methods for Enabling Customer Service |
US20100191933A1 (en) * | 2009-01-29 | 2010-07-29 | Infineon Technologies Ag | Apparatus for processing data and method for generating manipulated and re-manipulated configuration data for processor |
US8549260B2 (en) * | 2009-01-29 | 2013-10-01 | Infineon Technologies Ag | Apparatus for processing data and method for generating manipulated and re-manipulated configuration data for processor |
US20100318811A1 (en) * | 2009-06-15 | 2010-12-16 | Kabushiki Kaisha Toshiba | Cryptographic processor |
US20120066510A1 (en) * | 2010-09-15 | 2012-03-15 | At&T Intellectual Property I, L.P. | Methods, systems, and computer program products for performing homomorphic encryption and decryption on individual operations |
US8681973B2 (en) * | 2010-09-15 | 2014-03-25 | At&T Intellectual Property I, L.P. | Methods, systems, and computer program products for performing homomorphic encryption and decryption on individual operations |
US20120213360A1 (en) * | 2011-02-18 | 2012-08-23 | Bull Sas | Programmable cryptographic integrated circuit |
US8891757B2 (en) * | 2011-02-18 | 2014-11-18 | Bull Sas | Programmable cryptographic integrated circuit |
US9420008B1 (en) * | 2012-05-10 | 2016-08-16 | Bae Systems Information And Electronic Systems Integration Inc. | Method for repurposing of communications cryptographic capabilities |
US9747132B2 (en) | 2013-04-18 | 2017-08-29 | Denso Corporation | Multi-core processor using former-stage pipeline portions and latter-stage pipeline portions assigned based on decode results in former-stage pipeline portions |
US9547331B2 (en) | 2014-04-03 | 2017-01-17 | Qualcomm Incorporated | Apparatus and method to set the speed of a clock |
CN104391821A (en) * | 2014-11-20 | 2015-03-04 | 天津大学 | System level model building method of multiple core sharing SIMD coprocessor |
US10552619B2 (en) * | 2015-07-20 | 2020-02-04 | Intel Corporation | Technologies for secure trusted I/O access control |
US20170024569A1 (en) * | 2015-07-20 | 2017-01-26 | Intel Corporation | Technologies for secure trusted i/o access control |
US10348506B2 (en) | 2016-09-30 | 2019-07-09 | International Business Machines Corporation | Determination of state of padding operation |
US20220171885A1 (en) * | 2019-08-16 | 2022-06-02 | Pqshield Ltd | Co-processor for cryptographic operations |
US12229323B2 (en) * | 2019-08-16 | 2025-02-18 | Pqshield Ltd. | Co-processor for cryptographic operations |
US12019765B2 (en) * | 2020-12-14 | 2024-06-25 | Infineon Technologies Ag | Cryptographic processing device and method for cryptographically processing data |
US20220382695A1 (en) * | 2021-05-26 | 2022-12-01 | Stmicroelectronics Application Gmbh | Processing system, related integrated circuit, device and method |
US11762794B2 (en) * | 2021-05-26 | 2023-09-19 | Stmicroelectronics Application Gmbh | Processing system, related integrated circuit, device and method |
US12117949B2 (en) * | 2021-05-26 | 2024-10-15 | Stmicroelectronics Application Gmbh | Configurable cryptographic processor with integrated DMA interface for secure data handling |
RU2816836C1 (en) * | 2023-11-10 | 2024-04-05 | Общество с ограниченной ответственностью "НМ-ТЕХ" | Coprocessor in cryptography processing systems |
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20030084309A1 (en) | Stream processor with cryptographic co-processor | |
US7900022B2 (en) | Programmable processing unit with an input buffer and output buffer configured to exclusively exchange data with either a shared memory logic or a multiplier based upon a mode instruction | |
CN101017557B (en) | Graphics processing unit used for cryptographic processing | |
Leong et al. | A bit-serial implementation of the international data encryption algorithm IDEA | |
US7305567B1 (en) | Decoupled architecture for data ciphering operations | |
US20070011467A1 (en) | Methods and apparatus for hardware normalization and denormalization | |
US6920562B1 (en) | Tightly coupled software protocol decode with hardware data encryption | |
US20110264720A1 (en) | Cryptographic system, method and multiplier | |
EP1966683A2 (en) | Cryptography processing units and multiplier | |
US20070157030A1 (en) | Cryptographic system component | |
CN107924444B (en) | Secure modular exponentiation processor, method, system, and instructions | |
US20020065574A1 (en) | Data processor, semiconductor integrated circuit and CPU | |
US20040230813A1 (en) | Cryptographic coprocessor on a general purpose microprocessor | |
US20080148011A1 (en) | Carry/Borrow Handling | |
Blaner et al. | IBM POWER7+ processor on-chip accelerators for cryptography and active memory expansion | |
US7380106B1 (en) | Method and system for transferring data between a register in a processor and a point-to-point communication link | |
US20070192571A1 (en) | Programmable processing unit providing concurrent datapath operation of multiple instructions | |
Le et al. | Efficient and high-speed cgra accelerator for cryptographic applications | |
KR100453230B1 (en) | Hyperelliptic curve crtpto processor hardware apparatus | |
US20140188964A1 (en) | Instruction And Logic For Mid-Level Caching of Random Numbers Distributed to Multiple Computing Units | |
CN117083612A (en) | Handling unaligned transactions for inline encryption | |
CN116796341A (en) | System and method for encrypting memory transactions | |
Sklavos et al. | Low‐power Implementation of an Encryption/Decryption System with Asynchronous Techniques | |
US7401110B1 (en) | System, method and apparatus for an improved MD5 hash algorithm | |
US20240015004A1 (en) | Hardware-based key generation and storage for cryptographic function |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: SUN MICROSYSTEMS, INC., CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:KOHN, LESLIE D.;REEL/FRAME:013405/0185 Effective date: 20021017 |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- AFTER EXAMINER'S ANSWER OR BOARD OF APPEALS DECISION |