Mapping requests from a processing unit that uses memory-mapped input-output space
AssigneeIntel Corporation
InventorsGilbert Wolrich, Debra Bernstein, Daniel Cutter, Christopher Dolan, Matthew J. Adiletta
Life of this patent
Estimating the term…
Abstract
A processor is disclosed that can map a request from a central processing unit that uses memory-mapped input-output space to a second processing domain, such as a multithreaded processing domain. A request addressed to the input-output space of the central processing unit is converted to a corresponding command that simulates an operation between components in the multithreaded processing domain. The command is executed in the multithreaded processing domain. Information is accessed according to the request in response to executing the command.
Claims27
A method of performing a request from a central processing unit that uses memory-mapped input-output space, the method comprising:
- converting a request directed to the input-output space of the central processing unit to a corresponding command that simulates an operation between components in a second processing domain;
- executing the command in the second processing domain, wherein the second processing domain comprises a multithreaded processing domain, and wherein the multithreaded domain includes micro-coded processing engines that support multiple threads, the threads are simultaneously active but only one thread is in operation at any one time;
- and
- accessing information according to the request in response to executing the command.
A method of writing information from a central processing unit that uses memory-mapped input-output space, the method comprising:
- sending a request from the central processing unit to an address in the input-output space, wherein the address is associated with a destination in an bus interface unit;
- converting the address and a command type associated with the request to a corresponding command having a format used for communications between an engine in the bus interface unit and one or more micro-coded processing engines, wherein the micro-coded processing engines support multiple threads, the threads are simultaneously active but only one thread is in operation at any one time;
- executing the command in the engine in the bus interface unit;
- and
- writing the information to the destination in the bus interface unit in response to executing the command.
A method of writing information from a central processing unit that uses memory-mapped input-output space, the method comprising:
- sending a request from the central processing unit to an address in the input-output space, wherein the address is associated with a destination in a micro-coded processing engine;
- converting the address and a command type associated with the request to a corresponding command in a format used for communications between an engine in a bus interface unit and the micro-coded processing engine, wherein micro-coded processing engine supports multiple threads, the threads are simultaneously active but only one thread is in operation at any one time;
- executing the command in the engine in the bus interface unit;
- and
- writing the information to the destination in the micro-coded processing engine in response to executing the command.
A method of providing information from a bus interface unit to a central processing unit that uses memory-mapped input-output space, the method comprising:
- sending a request from the central processing unit to an address in the input-output space, wherein the address is associated with a location in the bus interface unit;
- converting the address and a command type associated with the request to a corresponding command having a format used for communications between an engine in the bus interface unit and one or more micro-coded processing engines, wherein the micro-coded processing engines support multiple threads, the threads are simultaneously active but only one thread is in operation at any one time;
- executing the command in the engine in the bus interface unit;
- and
- providing the information to the central processing unit in response to executing the command.
A method of providing information from a micro-coded processing engine to a central processing unit that uses memory-mapped input-output space, the method comprising:
- sending a request from the central processing unit to an address in the input-output space, wherein the address is associated with a location in the micro-coded processing engine;
- converting the address and a command type associated with the request to a corresponding command having a format used for communications between an engine in a bus interface unit and the micro-coded processing engine, wherein the micro-coded processing engine supports multiple threads, the threads are simultaneously active but only one thread is in operation at any one time;
- executing the command in the engine in the bus interface unit;
- and
- providing the information to the central processing unit in response to executing the command.
A parallel hardware-based multithreaded processor comprising:
- a central processing unit that coordinates system functions and that uses memory-mapped input-output space;
- micro-coded processing engines that support multiple threads, the threads are simultaneously active but only one thread is in operation at any one time;
- a bus interface unit;
- a first bus coupled to the central processing unit;
- and
- a second bus coupled to the micro-coded processing engines;
- and
- a translator unit coupled between the first bus and the second bus to convert a request that is addressed to the input-output space of the central processing unit to a corresponding command that simulates operations between the bus interface unit and the micro-coded processing units.
An article comprising a computer-readable medium which stores computer-executable instructions for causing a computer system to:
- convert a request addressed to input-output space of a central processing unit to a corresponding command that simulates an operation between components in a multithreaded processing domain, wherein the multithreaded processing domain includes micro-coded processing engines that support multiple threads, the threads are simultaneously active but only one thread is in operation at any one time;
- execute the command in the multithreaded processing domain;
- and
- cause information to be accessed according to the request in response to executing the command.
Dependencies are inferred from the claim text.