Method and apparatus for preventing a race condition and maintaining cache coherency in a processor with integrated cache memory and input/output control
First Claim
1. A single central processing unit comprising:
- a core logic unit; and
an integrated input/output system coupled to said core logic unit and configured to exchange data, without the use of an on bus, with an external memory, an external cache and an external input/output device, said integrated input/output system also configured to prevent a race condition between an instruction from said core logic unit and a direct memory access (DMA) request from said external input/output device that both reference a same memory location by moving said DMA request in front of said instruction and holding said instruction until said DMA request is serviced.
2 Assignments
0 Petitions
Accused Products
Abstract
An integrated processor includes an on-chip integrated input/output (IO) system (which does not have a on-chip bus) to handle direct memory access (DMA) operations from external IO units and interface with external cache and main memories. The integrated IO system includes an external cache controller that controls access to both the cache and main memory so as to maintain coherency between the cache and main memory. As part of maintaining data coherency, the cache controller prevents race conditions between instructions generated from a core logic unit within the microprocessor and DMA instructions generated from an external IO unit by giving the DMA request priority over the CPU instructions.
-
Citations
18 Claims
-
1. A single central processing unit comprising:
-
a core logic unit; and an integrated input/output system coupled to said core logic unit and configured to exchange data, without the use of an on bus, with an external memory, an external cache and an external input/output device, said integrated input/output system also configured to prevent a race condition between an instruction from said core logic unit and a direct memory access (DMA) request from said external input/output device that both reference a same memory location by moving said DMA request in front of said instruction and holding said instruction until said DMA request is serviced. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A computer system comprising:
-
a cache memory; a main memory; a bus; at least one input/output device coupled to said external bus; and a single central processing unit, coupled to said cache memory, to said main memory and to said external bus, said single central processing unit including; a core logic unit; and an integrated input/output system coupled to said core logic unit, said integrated input/output system including; (i) an external cache controller (ECU), coupled to said core logic unit and to said cache, said ECU configured to exchange data with said cache memory; (ii) an memory control unit, directly coupled to said ECU and to said main memory, said memory control unit configured to exchange data with said main memory; and (iii) and an external bus interface unit, directly coupled to said ECU without an intervening on-hip bus and coupled to said external bus, said external bus interface unit configured to exchange data with said at least one external input/output device over said external bus; wherein said integrated input/output system is configured to prevent a race condition between an instruction from said core logic unit and a direct memory access (DMA) request from said external input/output device that both reference a same memory location by moving said DMA request in front of said instruction and holding said instruction until said DMA request is serviced.
-
-
13. A method of preventing race conditions in an integrated processor having a central processing unit and an integrated input/output system on a single chip, said method comprising the steps of:
-
providing a bus interface unit as part of said integrated input/output system to interface to an external bus and to control the exchange of data with external input/output devices; providing an external cache controller as part of said integrated input/output system to interface to an external cache without the use of an on bus system; providing a memory controller as part of said integrated input/output system to interface to an external main memory without the use of an on bus system; simultaneously receiving first and second instructions at said cache controller, said first instruction being an instruction to access memory from said central processing unit and said second instruction being a direct memory access (DMA) instruction from an external input/output device coupled to said bus interface unit; and implementing a procedural rule to move said DMA instruction in front of said first instruction in execution order thereby preventing a race condition between said first instruction and said DMA instruction, said procedural rule being. - View Dependent Claims (14, 15, 16, 17)
-
-
18. A single central processing unit comprising:
-
a core logic unit; and an integrated input/output system coupled to said core logic unit and configured to exchange data, without the use of an on chip bus, with an external memory, an external cache and an external input/output device, said integrated input/output system also configured to prevent a race condition between an instruction from said core logic unit and a direct memory access (DMA) request from said external input/output device that both reference a same memory location by moving said DMA request in front of said instruction and holding said instruction until said DMA request is serviced, wherein said integrated input/output system is configured to implement a dynamic priority scheme to prevent race conditions.
-
Specification