KR100664334B1 - Data processing arrangement and memory system - Google Patents
Data processing arrangement and memory system Download PDFInfo
- Publication number
- KR100664334B1 KR100664334B1 KR1020007013445A KR20007013445A KR100664334B1 KR 100664334 B1 KR100664334 B1 KR 100664334B1 KR 1020007013445 A KR1020007013445 A KR 1020007013445A KR 20007013445 A KR20007013445 A KR 20007013445A KR 100664334 B1 KR100664334 B1 KR 100664334B1
- Authority
- KR
- South Korea
- Prior art keywords
- data
- data set
- memory
- memory circuit
- processor
- Prior art date
Links
- 101100189060 Arabidopsis thaliana PROC1 gene Proteins 0.000 claims abstract description 11
- 230000004044 response Effects 0.000 claims description 11
- 238000000034 method Methods 0.000 claims description 5
- 230000006870 function Effects 0.000 description 6
- 108700012361 REG2 Proteins 0.000 description 4
- 101150108637 REG2 gene Proteins 0.000 description 4
- 108091058543 REG3 Proteins 0.000 description 4
- 101100120298 Rattus norvegicus Flot1 gene Proteins 0.000 description 4
- 101100412403 Rattus norvegicus Reg3b gene Proteins 0.000 description 4
- 102100027336 Regenerating islet-derived protein 3-alpha Human genes 0.000 description 4
- 230000008901 benefit Effects 0.000 description 4
- 102100023882 Endoribonuclease ZC3H12A Human genes 0.000 description 3
- 101710112715 Endoribonuclease ZC3H12A Proteins 0.000 description 3
- 101001096074 Homo sapiens Regenerating islet-derived protein 4 Proteins 0.000 description 3
- 102100037889 Regenerating islet-derived protein 4 Human genes 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- QGVYYLZOAMMKAH-UHFFFAOYSA-N pegnivacogin Chemical compound COCCOC(=O)NCCCCC(NC(=O)OCCOC)C(=O)NCCCCCCOP(=O)(O)O QGVYYLZOAMMKAH-UHFFFAOYSA-N 0.000 description 3
- 101000854862 Homo sapiens Vacuolar protein sorting-associated protein 35 Proteins 0.000 description 2
- 102100020822 Vacuolar protein sorting-associated protein 35 Human genes 0.000 description 2
- 230000004913 activation Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000003213 activating effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001351 cycling effect Effects 0.000 description 1
- 230000006378 damage Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000003245 working effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F5/00—Methods or arrangements for data conversion without changing the order or content of the data handled
- G06F5/06—Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
-
- 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
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
- G06F13/405—Coupling between buses using bus bridges where the bridge performs a synchronising function
- G06F13/4059—Coupling between buses using bus bridges where the bridge performs a synchronising function where the synchronisation uses buffers, e.g. for speed matching between buses
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Multi Processors (AREA)
- Information Transfer Systems (AREA)
Abstract
데이터 처리 장치(1)는 연속적인 입력 데이터 세트를 제공하는 제 1 처리기(PROC1)와, 연속적인 출력 데이터 세트를 수신하는 제 2 처리기(PROC2)와, 입력 및 출력 데이터를 기억하는 다수의 메모리 회로(MEM)를 구비하는 메모리 시스템(2)을 포함한다. 본 발명에 따르면, 데이터 처리 장치는 입력 데이터 세트 및 출력 데이터 세트와 연관된 제어 커맨드(CC)에 의해 메모리 시스템을 셋업하는 주 제어기(MCP)를 더 포함한다. 이 제어 커맨드는 제어 유닛(MCU)에 의해 메모리 시스템에 수신된다. 제 1 처리기에 의해 입력 데이터 세트로부터 데이터(Di)가 제공될 때, 이 제어 유닛은, 제어 커맨드에 근거하여, 제 1 메모리 회로를 선택하고, 상기 제 1 메모리 회로에서 기입 데이터(AD_W)를 발생한다. 동일한 방법으로, 제 2 처리기에 의해 출력 데이터 세트로부터 데이터(Do)가 요구될 때, 제어 유닛은, 제어 커맨드에 근거하여, 제 2 메모리 회로를 선택하고, 상기 제 2 메모리 회로에서 판독 어드레스(AD_R)를 발생한다. 따라서, 데이터를 요구 또는 전송할 때 프로세서가 어드레스를 제공할 필요가 없어져서, 간단한 데이터 처리 장치가 달성된다.
The data processing apparatus 1 includes a first processor PROC1 that provides a continuous set of input data, a second processor PROC2 that receives a continuous set of output data, and a plurality of memory circuits that store input and output data. And a memory system 2 having (MEM). According to the invention, the data processing apparatus further comprises a main controller MCP for setting up the memory system by a control command CC associated with the input data set and the output data set. This control command is received by the control unit (MCU) to the memory system. When data Di is provided from the input data set by the first processor, the control unit selects a first memory circuit based on a control command and generates write data AD_W in the first memory circuit. do. In the same way, when data Do is requested from the output data set by the second processor, the control unit selects the second memory circuit based on the control command, and read-out address AD_R in the second memory circuit. Will occur). Thus, there is no need for a processor to provide an address when requesting or transmitting data, thereby achieving a simple data processing apparatus.
Description
본 발명은, 연속하는 입력 데이터 세트를 제공하는 제 1 처리기와, 연속하는 출력 데이터 세트를 수신하는 제 2 처리기와, 연속하는 입력 데이터 세트를 수신하여 연속하는 출력 데이터 세트를 제공하는 다수의 메모리 회로를 구비하는 메모리 시스템을 포함하는 데이터 처리 장치에 관한 것이다.The present invention provides a first processor for providing a continuous set of input data, a second processor for receiving a continuous set of output data, and a plurality of memory circuits for receiving a continuous set of input data and providing a continuous set of output data. It relates to a data processing apparatus including a memory system having a.
또한 본 발명은 데이터를 수신할 수도 있고 데이터를 몇 개의 처리기에 제공할 수도 있는 메모리 시스템과, 이러한 데이터 처리 장치에서 데이터를 처리하는 방법에 관한 것이다. 본 발명은 특히 데이터 스트림을 수반하는 멀티미디어 관련 응용에 적합하다. The invention also relates to a memory system capable of receiving data and providing the data to several processors and a method for processing data in such a data processing apparatus. The invention is particularly suitable for multimedia related applications involving data streams.
미국 특허 제 4,930,066 호는 페이지 어드레스를 제공하는 다수의 데이터 입/출력 포트와, 데이터 페이지를 기억하는 다수의 메모리 뱅크와, 데이터 입/출력 포트와 메모리 뱅크 사이에서 접속을 순환하는 스위칭 네트워크를 포함하는 메모리 시스템을 개시한다. 어드레스는 데이터와 관련하여 메모리 시스템으로 전송된다. 그러므로, 개시된 시스템은 각각의 입/출력 포트에 대해서 데이터 및 관련 어드레스를 수신하는 인터페이스를 포함한다. 이것은 데이터 기억시에 지연을 초래한다. 더욱이, 이러한 인터페이스는 하드웨어적으로 복잡하다. 게다가, 메모리 뱅크는 판독과 기입중 어느 하나를 위해서만 액세스 가능할 뿐, 둘 다를 위해 액세스될 수 없다. 메모리 액세스 충돌은 메모리 뱅크가 기입 데이터 수신과 판독 데이터 제공을 둘 다하기 위해 선택될 때 발생할 수 있다. 전술한 인용 문헌에 개시된 구성은, 동일한 뱅크에 위치된 두 개의 페이지를 액세스하기 위해 두 개의 다른 포트가 요구될 때 충돌이 발생하기 쉽다.U. S. Patent No. 4,930, 066 includes a plurality of data input / output ports for providing page addresses, a plurality of memory banks for storing data pages, and a switching network for cycling connections between the data input / output ports and memory banks. Start the memory system. The address is sent to the memory system in association with the data. Therefore, the disclosed system includes an interface for receiving data and associated addresses for each input / output port. This causes a delay in data storage. Moreover, this interface is complex in hardware. In addition, the memory bank is only accessible for either read or write, and cannot be accessed for both. Memory access conflicts can occur when a memory bank is selected for both write data reception and read data provision. The configuration disclosed in the above cited document is prone to collisions when two different ports are required to access two pages located in the same bank.
본 발명의 목적은 서두에서 전술한 것과 같은 데이터 처리 장치를 훨씬 더 간단하게 제공하는 것이다.It is an object of the present invention to provide a data processing device as described above at the outset much more simply.
본 발명에 따르면, 이러한 데이터 처리 장치는, 입력 데이터 세트 및 출력 데이터 세트와 연관된 제어 커맨드에 의해 메모리 시스템을 셋업(setting up)하는 주 제어기(master controller)를 포함하고, 메모리 시스템은, 제 1 처리기가 입력 데이터 세트의 데이터를 제공할 때, 제어 커맨드에 의거하여 제 1 메모리 회로를 선택하여 상기 제 1 메모리 회로에 기입 어드레스를 발생하고, 제 2 처리기가 출력 데이터 세트의 데이터를 요구할 때에는, 제어 커맨드에 의거하여 제 2 메모리 회로를 선택하여 상기 제 2 메모리 회로에 판독 어드레스를 발생하는 제어 유닛(control unit)을 포함한다. According to the invention, such a data processing apparatus comprises a master controller for setting up a memory system by a control command associated with an input data set and an output data set, the memory system comprising: a first processor; Selects a first memory circuit based on a control command to generate a write address to the first memory circuit when the second processor provides the data of the input data set, and when the second processor requests data of the output data set, And a control unit for selecting a second memory circuit based on the second memory circuit and generating a read address in the second memory circuit.
입력 데이터 세트 및 출력 데이터 세트와 연관된 제어 커맨드는 이 두 세트의 데이터에 대해 자율적으로 어드레스를 발생하도록 메모리 시스템을 셋업한다. 메모리 시스템의 제어 유닛은 이러한 입력 및 출력 데이터의 어드레스를 내부적으로 계산하여, 각각의 데이터에 대해 메모리 회로를 선택한다. 따라서, 프로세서가 데이터를 제공하거나 수신하기 위한 어드레스를 전송할 필요가 없다. 사실상, 처리기는 데이터 세트를 요구하거나 제공할 때 메모리 시스템의 내부 동작에 대해 어떤 것도 알 필요가 없다. 그 결과, 처리기와 이러한 메모리 시스템 사이에 존재할 수 있는 통신 프로토콜과 그로 인한 하드웨어 구현이 종래에 비해 상당히 간이화된다.The control commands associated with the input data set and the output data set set up the memory system to autonomously generate addresses for these two sets of data. The control unit of the memory system internally calculates addresses of such input and output data, and selects a memory circuit for each data. Thus, there is no need for the processor to send an address for providing or receiving data. In fact, the processor does not need to know anything about the internal workings of the memory system when requesting or providing a data set. As a result, the communication protocols that can exist between a processor and such a memory system and the resulting hardware implementations are significantly simplified compared to the prior art.
본 발명의 또다른 이점은 다음의 양상들과 관계있다. 본 발명에 따른 데이터 처리 장치에서, 메모리 시스템은 제 1 처리기로부터 입력 데이터를 수신할 수도 있고, 그와 동시에 이 메모리 시스템은 제 2 처리기에 출력 데이터를 제공할 수도 있다. 제어 유닛은 입력 및 출력 데이터를 위해 두 개의 상이한 메모리 회로를 선택함으로써 액세스 충돌에 대항할 수 있게 했다. 이것은 기억된 데이터의 파손을 막아준다. 메모리 회로는 또한 소정 순간에 판독과 기입중 하나는 허용하지만 둘다는 허용하지 않는 유형의 것일 수도 있다. 이러한 메모리 회로는 비교적 저렴하고, 따라서 비용 효율을 본 발명의 또다른 이점으로 들 수 있다.Another advantage of the present invention relates to the following aspects. In the data processing apparatus according to the present invention, the memory system may receive input data from the first processor, and at the same time, the memory system may provide output data to the second processor. The control unit made it possible to combat access conflicts by selecting two different memory circuits for input and output data. This prevents the destruction of the stored data. The memory circuit may also be of a type that allows one of reading and writing at a given moment but not both. Such memory circuits are relatively inexpensive, and thus cost efficiency is another advantage of the present invention.
판독 및 기입 어드레스가 상이한 방법으로 발생될 수도 있다. 이러한 어드레스를 얻는 한 가지 방법은 입력 데이터 세트와 출력 데이터 세트와 연관된 모든 어드레스를 룩업 테이블에 싣는 것이다. 그러나 이러한 룩업 테이블은 구현이 복 잡하고, 큰 칩 면적을 필요로 한다.Read and write addresses may be generated in different ways. One way to get this address is to put all addresses associated with the input data set and the output data set into a lookup table. However, these lookup tables are complex to implement and require a large chip area.
청구항 제 2 항에 청구된 본 발명의 바람직한 실시예는 데이터가 기억되거나 페치(fetched)될 위치를 각기 결정하는 판독 및 기입 어드레스를 발생하기 위한 판독 카운터와 기입 카운터를 포함한다. 이러한 두 개의 카운터는 판독 어드레스와 기입 어드레스를 제공하기 위해 간단히 구현되는 수단이다.A preferred embodiment of the invention as claimed in
제 1 처리기가 입력 데이터 세트의 데이터를 제공하는 때와 제 2 처리기가 출력 데이터 세트의 데이터를 요구하는 때를 메모리 시스템이 알기 위한 방법은 여러 가지가 있다. 한가지 해결법은 전술한 두 개의 카운터가 클록 신호의 클록 펄스에 따라 한 단위씩 증가 혹은 감소하면서 계수하는 것이다. 이것은 입력 및 출력 데이터가 클록 신호에 의해 결정되는 고정된 속도로 수신되거나 제공됨을 의미한다.There are several ways for the memory system to know when the first processor provides data in the input data set and when the second processor requires data in the output data set. One solution is to count the two counters described above, incrementing or decrementing by one unit according to the clock pulses of the clock signal. This means that the input and output data are received or provided at a fixed rate determined by the clock signal.
청구항 제 3 항에 청구된 본 발명의 또다른 실시예는 처리기로부터 판독 신호 및 기입 신호를 받아들인다. 처리기는 새로운 출력 데이터를 요구하거나 혹은 새로운 입력 데이터를 제공할 때에 판독 혹은 기입 신호를 메모리 시스템으로 보낸다. 이 신호들은 처리기가 데이터를 비동기적으로 수신 혹은 제공할 수 있게 한다. 이 실시예의 데이터 처리 장치에서는, 두 개의 처리기가 자체 속도로 메모리 시스템에 액세스할 수 있다. 이것은 다양한 처리기가 자체 처리 속도를 가지고 있고 이들이 동일한 속도로 데이터를 수신 또는 제공할 수 없는 경우에 특히 유리하다. 데이터가 클록 신호에 따라 전송되는 해결법과 비교하면, 청구항 제 3 항에 청구된 실시예는 더 큰 융통성을 갖는다는 주요 이점을 제공한다.Another embodiment of the invention claimed in
또한 본 발명은, 연속하는 입력 데이터 세트를 수신하고 연속하는 출력 데이터 세트를 제공하는 다수의 메모리 회로를 포함하는 메모리 시스템과 관계있으며, 또한 이 메모리 시스템은, 입력 데이터 세트 및 출력 데이터 세트와 연관된 제어 커맨드에 의해 프로그램 가능한 제어 유닛을 포함하고, 이들 제어 커맨드에 근거하여, 입력 데이터 세트로부터 데이터가 수신될 때에는 제 1 메모리 회로가 선택되어 상기 제 1 메모리 회로에서 기입 어드레스가 발생되는 반면, 출력 데이터 세트로부터 데이터가 제공될 때에는 제 2 메모리 회로가 선택되어 상기 제 2 메모리 회로에서 판독 어드레스가 발생된다. 더 전반적으로 본 발명은 청구된 데이터 처리 장치에서 수행되는 데이터 처리 방법에도 관련있다. The invention also relates to a memory system comprising a plurality of memory circuits for receiving a continuous set of input data and providing a continuous set of output data, the memory system further comprising a control associated with the input data set and the output data set. A control unit programmable by a command, and based on these control commands, when data is received from an input data set, a first memory circuit is selected so that a write address is generated in the first memory circuit, while an output data set When data is provided from the second memory circuit is selected to generate a read address in the second memory circuit. More generally, the present invention also relates to a data processing method performed in the claimed data processing apparatus.
본 발명의 구체적인 양상은 첨부 도면과 연계하여 이후에 설명되는 실시예를 참조하여 설명될 것이다.Specific aspects of the present invention will be described with reference to the embodiments described below in connection with the accompanying drawings.
도 1은 본 발명에 따른 데이터 처리 장치의 일 실시예의 블록도이다.1 is a block diagram of an embodiment of a data processing apparatus according to the present invention.
도 2는 본 발명에 따른 데이터 처리 장치의 바람직한 실시예의 블록도이다2 is a block diagram of a preferred embodiment of a data processing apparatus according to the present invention.
도 3은 다양한 구성 요소간의 내부 접속을 보여주는 메모리 시스템의 블록도이다.3 is a block diagram of a memory system illustrating internal connections between various components.
도 4는 8비트 워드 MC_W를 도시한다.4 shows an 8-bit word MC_W.
본 발명에 따른 데이터 처리 장치(1)는 도 1에 도시되어 있다. 이 장치는 메모리 시스템(2), 연속하는 입력 데이터 세트를 메모리 시스템(2)에 제공하는 제 1 처리기 PROC1, 메모리 시스템(2)으로부터 연속하는 출력 데이터 세트를 수신하는 제 2 처리기 PROC2를 포함한다. PROC1은 크로스바(6)와 메모리 시스템(2)의 입력 포트(3)를 통해 데이터 Di를 제공한다. PROC2는 크로스바(5)와 메모리 시스템(2)의 출력 포트(4)를 통해 데이터 Do를 수신한다. 메모리 시스템(2)은 메모리 제어 유닛 MCU롸 메모리 블록 MB을 포함한다. 이 메모리 블록 MB에는 데이터가 물리적으로 기억되는데, 임의 개(여기에서는 5개)의 독립적인 메모리 회로 MEM1, MEM2, MEM3, MEM4, MEM5로 구성된다. 이들 메모리 회로는 본 발명의 바람직한 실시예에서 예를 들면 10비트의 256워드 구성의 SRAM(Static Random Access Memory)이다. 데이터 Di가 여기에 기입될 때, 각각의 메모리 회로 MEM1,...,MEM5는 각각의 입력 포트 I1, I2, I3, I4, I5를 통해 액세스 가능하며, 데이터 Do가 판독될 때에는, 각각의 메모리 회로 MEM1,...,MEM5는 각각의 출력 포트 O1, O2, O3, O4, O5를 통해 액세스 가능하다. The
데이터 처리 장치(1)는 또한 주 제어기 MCP를 포함하는제, 이것은 제어 버스 CB를 통해 제어 커맨드 CC를 제어 유닛 MCU로 전송한다. 이 제어 커맨드 CC는 메모리 블록 MB에 기입하기 위해 PROC1로부터 수신된 입력 데이터 세트와 연관된다. 도한 이 제어 커맨드는 PROC2에 의해 요구된 출력 데이터 세트와도 연관되는데, 이 출력 데이터 세트는 메모리 블록 MB로부터 페치되는 것이다. 커맨드 CC는 PROC1과 PROC2가 각각 입력 데이터 세트와 출력 데이터 세트를 처리하기 이전에 제어 유닛 MCU로 전송된다. 커맨드 CC는 제어 유닛 MCU의 셋업을 동작시킨다. 메모리 시스템(2)의 제어 유닛 MCU의 주 기능은 메모리 블록 MB내에 데이터를 기억하는 것을 관리하는 것이다. 제어 커맨드에 응답하여, 유닛 MCU는 메모리 블록 MB로 전송되는 커맨드 세트 COM을 발생하는데, 이 커맨드 세트 COM은 MB로부터 데이터 Do가 페치되는 위치나 혹은 MB에 데이터 Di가 삽입되는 위치를 나타내는다. 따라서, 데이터 Di가 기입을 위해 PROC1에 의해 포트(3)에 제공되면, MCU는 우선, 데이터 Di가 메모리 회로 MEM1, MEM2, MEM3, MEM4, MEM5 중 어디에 기입되어야 하는지를 대응하는 입력 포트 I1, I2, I3, I4, I5를 활성화시킴으로써 나타내는 세트 COM을 메모리 시스템(2)으로 전송한다. 또한, 이 COM 세트는 선택된 메모리 회로에서 데이터가 기입되는 위치인 기입 어드레스를 포함한다. 마찬가지로, 출력 포트(4)에서 PROC2에 의해 데이터 Do가 요구되면, MCU는, 어떤 메모리 회로 MEM이 선택되었는지를 메모리 블록 MB에게 나타내고 요구된 데이터가 페치될 메모리 회로내의 위치인 판독 어드레스를 포함하고 있는 세트 COM을 전송한다. The
기입과 판독 동작은 동일한 메모리 회로에서 동시에 수행될 수 없음을 유의하자. 게다가, 판독과 기입을 위해 동시에 요구된 데이터를 파손하지 않기 위해서, 이 두 동작은 동시에 허용되지 않는다. 동일한 메모리 회로가 동시 기입 및 판독을 위해 선택되면, 판독 동작은 비활성화되고, 기입 동작은 평상시대로 수행된다. 동시 기입 및 판독 동작은 오로지 두 개의 상이한 메모리 회로에서 수행될 수 있다. 그 결과, 본 발명에 따른 데이터 처리 장치에서는 액세스 충돌이 해소된다. 이후의 설명에서는, 발생할 수 있는 액세스 충돌이 검출 및 방지되는 방법을 상세히 설명하겠다. Note that write and read operations cannot be performed simultaneously in the same memory circuit. In addition, these two operations are not allowed at the same time, in order not to destroy data required simultaneously for reading and writing. If the same memory circuit is selected for simultaneous write and read, the read operation is inactivated and the write operation is performed as usual. Simultaneous write and read operations can only be performed in two different memory circuits. As a result, the access conflict is eliminated in the data processing apparatus according to the present invention. In the following description, a detailed description will be given of how an access conflict that may occur is detected and prevented.
메모리 블록이 몇 개의 처리기와 연계하여 이용될 수도 있다. 그렇지만, 두 개의 처리기는 기입을 위해 메모리 시스템(2)를 동시에 액세스할 수 없다. 그러나, 몇 개의 유닛이 동일한 데이터 세트를 (4)를 통해 판독하기 위해 메모리 블록 MB에 동시에 액세스할 수도 있다. 본 명세서에서 설명한 바와 같이 메모리 블록은 처리 연쇄(processing chain)에서 두 개의 처리기 사이에 버퍼 메모리로서 종종 이용된다.Memory blocks may be used in conjunction with several processors. However, two processors cannot simultaneously access the
본 발명의 바람직한 실시예에서, 도 2에 도시된 제어 유닛 MCU는 4개의 신호 MS, R/W, AD_W, AD_R로 이루어진 커맨드 세트 COM를 전송한다. 더욱이, 이 바람직한 실시예에서, 제어 유닛 MCU는 데이터가 판독 또는 기입될 때 제어 커맨드 CC에 의한 셋업 이후에 신호 MS를 메모리 블록 MB로 전송하는 제어기 CTRL를 포함한다. 이 신호 MS는 메모리 회로 MEM1, MEM2, MEM3, MEM4, MEM5 중 하나를 선택할 수 있게 한다. 제어기 CTRL은 또한 메모리 블록 MB에 R/W 신호를 공급하는데, 이 R/W 신호는 선택된 메모리 회로가 판독에 필요한지 기입에 필요한지를 나타내며, 메모리 회로가 판독을 위해 선택되었는지 혹은 기입을 위해 선택되었는지에 따라서 그 입력 포트 I1,...,I5나 혹은 그 출력 포트 O1,...,O5의 활성화를 허용한다. 예를 들어, 선택된 메모리 회로가 기입에 필요하면 이 신호는 1이고, 반면에 판독에 필요하면 0일 수도 있다. In a preferred embodiment of the present invention, the control unit MCU shown in FIG. 2 sends a command set COM consisting of four signals MS, R / W, AD_W, AD_R. Moreover, in this preferred embodiment, the control unit MCU comprises a controller CTRL which transmits the signal MS to the memory block MB after setup by the control command CC when data is read or written. This signal MS allows one of the memory circuits MEM1, MEM2, MEM3, MEM4, and MEM5 to be selected. The controller CTRL also supplies an R / W signal to the memory block MB, which indicates whether the selected memory circuit is required for reading or for writing, and whether the memory circuit has been selected for reading or for writing. This allows the activation of its input ports I1, ..., I5 or its output ports O1, ..., O5. For example, this signal may be 1 if the selected memory circuit is needed for writing, while 0 may be required for reading.
또한, 메모리 제어 유닛 MCU는 외부적으로 적재(loaded)될 수 있는 두 개의 내부 카운터 CNT_R과 CNT_W를 포함한다. 카운터 CNT_W의 값은 제어 유닛 MCU의 기입 입력 포트(7)를 통해 수신된 신호 NXT_W에 응답하여 변경`되며, 제어기 CTRL에 의해 선택된 메모리 회로에 기입될 데이터 Di의 판독 어드레스인 신호 AD_W를 제공한다. 따라서, 프로세서 PROC1이 데이터 Di를 제공할 때, 이 PROC1은 크로스바(6)과 기입 입력 포트(7)를 통해 신호 NXT_W도 전송한다. 데이터 Di는 제어기 CTRL에 의해 선택된 메모리 회로내에서 AD_W에 의해 지시된 위치에 기입된다. 다음, 카운터 CNT_W는 NXT_W에 응답하여 증가되어, PROC1에 의해 제공되는 다음 데이터 Di를 위해 다음에 이용할 수 있는 위치를 나타내는 새로운 어드레스 AD_W를 제공할 준비를 한다. 그러므로, 신호 NXT_W는, 데이터 Di의 연속적인 비동기 기입을 위해서, 선택된 메모리 회로내에서 어드레스를 증가시키는 것을 허용한다. 본 발명의 이 실시예에서 카운터 CNT_W는 데이터가 선택된 메모리 회로에 기입된 이후에 증가된다. CNT_W는 데이터가 기입되기 이전에 NXT_W에 응답하여 감소될 수도 있다.The memory control unit MCU also includes two internal counters CNT_R and CNT_W that can be externally loaded. The value of the counter CNT_W is changed in response to the signal NXT_W received through the
유사하게, PROC2가 메모리 블록 MB로부터 새로운 데이터 D0을 요구할 때, PROC2는 신호 NXT_R을 크로스바(5)와 제어 유닛 MCU의 판독 입력 포트(8)를 통해서 카운터 CNT_R로 전송한다. 신호 NXT_R에 응답하여, 카운터 CNT_R은 증가하고 판독 어드레스 AD_R을 MB로 제공한다. 이 어드레스 AD_R은 제어기 CTRL에 의해 판독용으로 선택된 메모리 회로에서 PROC2에 의해 요구된 데이터 D0의 어드레스이다. 카운터 CNT_R은 선택된 메모리 회로로부터 데이터가 취해지기 전에 증가된다. 본 발명의 일 실시예에서, 신호 NXT_W와 NXT_R은 카운터의 각 클록 입력에 제공되고, 그러므로 이들은 카운터 CNT_W와 CNT_R에 대해 각기 비동기 클록으로서 작용한다. 이 바람직한 실시예의 주 이점은 메모리 시스템이 상이한 처리 속도의 처리기에 의해 액세스될 수 있도록 해주는 데이터 처리 장치(1)의 비동기적 동작이다. 본 발명의 가능한 구현으로서, 두 개의 카운터가 하나의 클록 신호에 접속되어, 예를 들면 클록 신호의 각각의 상승 에지에서 판독 및 기입 어드레스를 제공하는 것도 가능하다. 이 구현은 클록의 고정된 주파수로 데이터를 수신 및 제공해야 하는 프로세서의 동기적 동작을 필요로 한다.Similarly, when PROC2 requests new data D0 from memory block MB, PROC2 sends signal NXT_R to counter CNT_R via
본 발명의 개선된 일 실시예는 도 3에 도시된다. 이 도면은 도 2의 두 개의 카운터 CNT_W, CNT_R을 포함하는 메모리 제어 유닛 MCU를 도시한다. 본 발명의 이 개선된 실시예에서, 도 2에 설명된 제어기 CTRL는 두 개의 독립된 제어기 CTRL_W 및 CTRL_R과, 메모리 시스템(2)내에서 발생할 수도 있는 액세스 충돌을 검출 및 해결하는 독립된 유닛 COMP로 구성된다. 제어 유닛 MCU는 4개의 레지스터 REG1, REG2, REG3, REG4로 구성된다. 이 레지스터는 주 제어기 MCP로부터 제어 커맨드 세트 CC를 수신한다. 이 세트 CC는 이 경우에 4개의 주 커맨드 워드 Strt_W, MC_W, MC_R, Strt_R로 이루어진다. 커맨드 MC_W와 MC_R은 주 제어기 MCP에 의해 제어 버스 CB로 전송된 적재 신호 ld_conf에 응답하여 각각 REG2와 REG3에 기억된다. Strt_W와 Strt_R은 각기 제어기 CTRL_W와 CTR_R로부터의 ld신호에 응답하여 각기 REG1와 REG4에 적재된다. REG1의 내용은 접속 라인(10)을 통해 카운터 CNT_W에 전송된다. REG2의 내용은 접속 라인(11)을 통해 제어기 CTRL_W에 전송된다. REG3의 내용은 접속 라인(12)을 통해 제어기 CTRL_R에 전송된다. REG4의 내용은 접속 라인(13)을 통해 카운터 CNT_R에 전송된다. 제어 버스 CB로 전송된 ld_conf 신호는 메모리 제어 유닛 MCU의 셋업을 활성화시킨다. 이 신호 ld_conf에 응답하여, 레지스터 REG2와 REG3의 내용은 제어 버스 CB상에서 수신된 새로운 제어 커맨드 CC로 갱신된다.One improved embodiment of the present invention is shown in FIG. 3. This figure shows a memory control unit MCU comprising two counters CNT_W, CNT_R in FIG. In this improved embodiment of the present invention, the controller CTRL described in FIG. 2 consists of two independent controllers CTRL_W and CTRL_R, and an independent unit COMP that detects and resolves access conflicts that may occur within the
도 3에 도시된 메모리 블록은 대칭인데, 이 메모리 블록의 상부 부분은 메모리 블록의 기입 기능과 관련있고, 상부 부분과 대칭인 그 하부 부분은 메모리 블록의 판독 기능과 관련있다. 다음의 설명은 주로 기입 기능과 관련있는 메모리 블록의 소자들을 중점적으로 다루지만, 이들 소자대한 설명은 판독 기능과 관련있는 대칭 소자에 대해서도 그대로 유효하다.The memory block shown in Fig. 3 is symmetrical, where the upper part of the memory block is related to the write function of the memory block, and the lower part that is symmetric to the upper part is related to the read function of the memory block. The following discussion focuses primarily on the elements of the memory block that relate to the write function, but the descriptions for these devices remain valid for symmetrical elements that relate to the read function.
Strt_W, MC_W, MC_R, Strt_R은 8비트 워드로서, 이 비트들은 이후에 설명되는 의미를 갖는다. 신호 MC_R과 MC_W는 각각 판독 처리 사이클동안의 판독 패턴과, 기입 처리 사이클동안의 기입 패턴을 정의한다. 처리 사이클은 셋업 단계동안 제어기 CTRL_W와 CTRL_R에 적재된 새로운 제어 커맨드 세트 CC로 시작한다. 도 4에 도시된 8비트 워드 MC_W의 각 비트의 정확한 의미는 다음과 같다.Strt_W, MC_W, MC_R, Strt_R are 8-bit words, and these bits have the meaning described later. The signals MC_R and MC_W respectively define a read pattern during the read processing cycle and a write pattern during the write processing cycle. The processing cycle starts with a new control command set CC loaded in the controllers CTRL_W and CTRL_R during the setup phase. The exact meaning of each bit of the 8-bit word MC_W shown in FIG. 4 is as follows.
최하위 비트 MC_W[0]는, 기입 동작이 인에이블되었는지를 나타낸다. 이 비트가 "1"로 설정되면, 기입 동작이 허용되고, 이 비트가 "0"으로 설정되면, 기입 동작은 비활성화 되고, 카운터 CNT_W는 증가되지 않으며, MC_W의 다른 비트들은 무시된다.The least significant bit MC_W [0] indicates whether the write operation is enabled. If this bit is set to "1", a write operation is allowed, and if this bit is set to "0", the write operation is disabled, the counter CNT_W is not incremented, and other bits of MC_W are ignored.
MC_W[1]과 MC_W[2]는 4개의 가능한 패턴중에 기입 동작 패턴을 선택한다. 표 1은 기입 동작용 패턴을 제공하는 내부 제어기 CTRL_W에 기억된 코드를 정의한다. MC_W [1] and MC_W [2] select a write operation pattern from four possible patterns. Table 1 defines the code stored in the internal controller CTRL_W that provides the pattern for the write operation.
MC_W[3], MC_W[4], MC_W[5]는 기입 사이클 동안 기입용 시작 메모리 회로 번호 값을 나타낸다. 본 발명의 이 실시예에서 메모리 블록 MB는 5개의 독립적인 메모리 회로를 포함하므로, 1에서 5까지인 메모리 회로의 번호는 이 경우에 3비트로 2진수로 엔코드된다.MC_W [3], MC_W [4], and MC_W [5] represent the starting memory circuit number values for writing during the write cycle. In this embodiment of the present invention, the memory block MB includes five independent memory circuits, so that the numbers of the
MC_W[6]은 사용되지 않는다.MC_W [6] is not used.
최상위 비트 MC_W[7]은 기입 사이클동안에 메모리 회로 번호의 변경에 대한 필요성을 나타낸다. 이 비트가 "0"으로 설정되면, 8비트 어드레스 카운터 CNT_W가 메모리 회로의 처음에서 끝까지 진행했을 때 메모리 회로 번호는 자동적으로 증가된다. 만약 메모리 회로 번호가 최고값(여기에서는 5임)과 동일하면, MC_W[3], MC_W[4], MC_W[5]에 코드화된 메모리 회로 번호는 1로 설정된다. 제어기 CTRL_W는 전송 라인(14)를 통해 검사하기 위해 CNT_W의 현재값에 대해 액세스한다. 이 비트가 "1"로 설정되면, MC_W[3], MC_W[4], MC_W[5]에 코드화된 메모리 회로 번호는 기입 사이클 동안 변경되지 않는다.
The most significant bit MC_W [7] indicates the need for a change of the memory circuit number during the write cycle. If this bit is set to "0", the memory circuit number is automatically incremented when the 8-bit address counter CNT_W advances from the beginning to the end of the memory circuit. If the memory circuit number is equal to the highest value (here 5), the memory circuit number coded in MC_W [3], MC_W [4], MC_W [5] is set to one. The controller CTRL_W accesses the current value of CNT_W for checking through
8비트 워드 MC_R에 대해서도 유사한 설명이 유효하다. 그 비트들은 이번에는 판독 사이클에 대해 MC_W의 비트들과 동일한 의미를 갖는다. 따라서, 제어기 CTRL_R은 접속 라인(17)을 통해 CNT_R의 값을 검사 및 리셋하고, 카운터 CNT_R이 커맨드 ld에 응답하여 새로운 값을 적재할 수 있게 한다.Similar explanation is valid for the 8-bit word MC_R. The bits this time have the same meaning as the bits of MC_W for the read cycle. Thus, controller CTRL_R checks and resets the value of CNT_R via
액세스 충돌은, 판독 동작동안 선택된 메모리 회로와 기입 동작 동안 선택된 메모리 회로가 동일할 때, 즉, MC_W[3]=MC_R[3], MC_W[4]=MC_R[4], MC_W[5]=MC_R[5]일 때 발생할 수 있다. 갈등은 또한 기입과 판독 동작이 둘 다 인에이블될 때, 즉, MC_W[0]=1, MC_R[0]=1일 때 실재한다. 유닛 COMP는 라인(15)상에 전송된 비트 MC_W[0], MC_W[3], MC_W[4], MC_W[5]를 CTRL_W로부터 수신하고, 라인(16)상에 전송된 비트 MC_R[0], MC_R[3], MC_R[4], MC_R[5]를 CTRL_R로부터 수신한다. 유닛 COMP는 수신된 비트들을 비트 단위로 비교하고, 실제 메모리 액세스 충돌(판독과 기입을 위해 선택된 메모리 회로 번호가 동일하고, 판독과 기입 동작이 둘다 인에이블됨)이 검출하면, 라인(16)을 통해, 판독 동작이 인에이블되었음을 말하고 있는 비트 MC_R[0]이 CTRL_R에 의해 0으로 판독되도록 한다. 사실상, 유닛 COMP은 정확히 말해서 MC_R[0]을 변경하는 것이 아니라, MC_R[0]은 여전히 1이지만, 이것이 제어기 CTRL_R에 의해 0으로 판독되도록 만든다. 판독과 기입 동작중 하나가 새로운 셋업 단계동안 디스에이블되기 때문에, 혹은 판독이나 기입을 위해 액세스되는 메모리 회로의 번호가 새로운 셋업 동안이나 판독 또는 기입 동작의 과정에서 변경되기 때문에 충돌은 중단된다. 이러한 경우, 유닛 COMP는 더 이상 충돌을 검출하지 않으며, 기입 동작이 평상시대로 수행된다.
An access collision is caused when the memory circuit selected during the read operation and the memory circuit selected during the write operation are the same, that is, MC_W [3] = MC_R [3], MC_W [4] = MC_R [4], MC_W [5] = MC_R Can occur when [5]. Conflicts also exist when both write and read operations are enabled, that is, when MC_W [0] = 1, MC_R [0] = 1. Unit COMP receives bits MC_W [0], MC_W [3], MC_W [4], MC_W [5] transmitted on
데이터 Di가 메모리 시스템(2)에 기입되는 것이 필요한 경우를 생각해보자. Di는 포트(3)에 제공되고, 동시에 CTRL_W와 CNT_W는 그들 각각의 신호 MS, R/W, AD_W를 전송한다. MS 신호는, 예를 들면, 선택될 메모리 회로 번호를 나타내는 3개의 코드화된 비트이다. 이 신호는 디멀티플렉서 DEMUX에 전송되고, DEMUX의 출력은 각각의 메모리 회로 MEM에 접속되어 있다. 디멀티플렉서 DEMUX는 번호가 MS에 코드화된 메모리 회로에게는 1을 전송하고, 다른 모든 회로에게는 0을 전송한다. R/W 신호는 모든 메모리 회로로 전송되지만, 선택된 메모리 회로에 의해서만 고려되고, 또한 Di 기입용 메모리 회로의 입력 포트의 활성화를 초래한다. 기입 어드레스 AD_W도 모든 메모리 회로로 전송되지만, 오로지 선택된 메모리 회로에 의해서만 고려된다. 다음, 데이터는 메모리 블록에서 활성화된 입력 포트를 향해, 그리고 선택된 메모리 회로내의 지시된 위치로 전송된다.Consider a case where it is necessary for data Di to be written to the
본 발명의 개선된 실시예에서, 메모리 시스템(2)은 데이터를 수신하거나 제공할 준비가 되었는지를 프로세서에게 나타내는 신호를 전송할 수도 있다. 이것은 프로세서가 판독용 메모리가 비어있을 때 이 메모리에 액세스하거나 혹은 기입용 메모리가 이미 가득 차 있을 때 이 메모리에 액세스하는 것을 막아준다.In an improved embodiment of the invention, the
도면과 그 설명은 본 발명을 한정하는 것이 아니라 예시하는 것이다. 첨부된 특허 청구 범위의 사상을 유지하는 다양한 대체물이 존재할 수 있음이 자명할 것이다. 이런 견지에서 다음의 맺음말이 작성되었다The drawings and their descriptions are intended to illustrate, not limit, the invention. It will be apparent that various alternatives may exist that maintain the spirit of the appended claims. In this respect the following conclusion was made:
다양한 유닛에 대해서 기능 혹은 기능적 요소를 물리적으로 분산시키는 다양한 방법이 존재한다. 이런 견지에서, 도면은 단순히 도식적인 것이고, 그 각각은 단지 본 발명의 가능한 실시예를 표시하고 있다. There are various ways of physically distributing the functions or functional elements across the various units. In this respect, the drawings are merely schematic, each of which merely represents a possible embodiment of the present invention.
Claims (5)
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/282,325 US6349378B1 (en) | 1999-03-31 | 1999-03-31 | Data processing using various data processors |
US09/282,325 | 1999-03-31 | ||
US09/316,560 | 1999-05-24 | ||
US09/316,560 US6874013B2 (en) | 1999-05-24 | 1999-05-24 | Data processing arrangement and memory system |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20010052435A KR20010052435A (en) | 2001-06-25 |
KR100664334B1 true KR100664334B1 (en) | 2007-01-02 |
Family
ID=26961375
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020007013445A KR100664334B1 (en) | 1999-03-31 | 2000-03-09 | Data processing arrangement and memory system |
Country Status (7)
Country | Link |
---|---|
EP (1) | EP1084466B1 (en) |
JP (1) | JP2002541543A (en) |
KR (1) | KR100664334B1 (en) |
CN (1) | CN1185573C (en) |
DE (1) | DE60019519T2 (en) |
TW (1) | TW525084B (en) |
WO (1) | WO2000060448A1 (en) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0353942A3 (en) * | 1988-08-02 | 1991-01-16 | Advanced Micro Devices, Inc. | A ripple-through fifo memory |
US5546347A (en) * | 1994-07-22 | 1996-08-13 | Integrated Device Technology, Inc. | Interleaving architecture and method for a high density FIFO |
CA2150151A1 (en) * | 1994-08-05 | 1996-02-06 | John H. Baldwin | First-in first-out memory |
-
2000
- 2000-03-09 KR KR1020007013445A patent/KR100664334B1/en not_active IP Right Cessation
- 2000-03-09 CN CNB008009198A patent/CN1185573C/en not_active Expired - Lifetime
- 2000-03-09 JP JP2000609874A patent/JP2002541543A/en not_active Withdrawn
- 2000-03-09 DE DE60019519T patent/DE60019519T2/en not_active Expired - Lifetime
- 2000-03-09 EP EP00920484A patent/EP1084466B1/en not_active Expired - Lifetime
- 2000-03-09 WO PCT/EP2000/002079 patent/WO2000060448A1/en active IP Right Grant
- 2000-03-29 TW TW089105796A patent/TW525084B/en not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
KR20010052435A (en) | 2001-06-25 |
DE60019519T2 (en) | 2006-02-23 |
EP1084466A1 (en) | 2001-03-21 |
EP1084466B1 (en) | 2005-04-20 |
WO2000060448A1 (en) | 2000-10-12 |
CN1185573C (en) | 2005-01-19 |
JP2002541543A (en) | 2002-12-03 |
DE60019519D1 (en) | 2005-05-25 |
TW525084B (en) | 2003-03-21 |
CN1306638A (en) | 2001-08-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4780812A (en) | Common memory system for a plurality of computers | |
KR950035193A (en) | Computer network and how to communicate voice and data information | |
JPH03131945A (en) | Staggered-access-memory | |
US6029233A (en) | Circuit for moving data between remote memories and computer comprising such a circuit | |
US6931462B2 (en) | Memory controller which increases bus bandwidth, data transmission method using the same, and computer system having the same | |
US5146560A (en) | Apparatus for processing bit streams | |
EP1109102B1 (en) | Memory system comprising multiple memory devices and memory access method | |
KR20010050236A (en) | Arrangement with a plurality of processors sharing a collective memory | |
KR100664334B1 (en) | Data processing arrangement and memory system | |
US6874013B2 (en) | Data processing arrangement and memory system | |
US5289426A (en) | Dual port memory having address conversion function | |
JPS61165170A (en) | Bus controlling system | |
KR20110014988A (en) | Method for controlling access to regions of a storage comprising a plurality of processes and communication module having a message storage for implementing the method | |
EP1096384B1 (en) | Bridge unit between a system bus and a local bus | |
KR950009763B1 (en) | A method of data transmission and synchronization between two cpu's | |
US6175881B1 (en) | Microcontroller having a memory, a dedicated multitask memory, and switching circuit for selectively connecting the multitask memory to the internal or external bus | |
JPH0373039A (en) | Processor and multiprocessor system | |
US5357619A (en) | Paged memory scheme | |
EP0344915A2 (en) | Apparatus for processing bit streams | |
KR920004415B1 (en) | A circuit and a method for transfering data | |
KR100192774B1 (en) | Apparatus for identifying structure of memory in a computer system | |
JPS6037933B2 (en) | Computer memory access method | |
JPH0851682A (en) | Method and device for setting line | |
KR20020010754A (en) | Apparatus for memory share in the digital signal processor | |
JPH03237549A (en) | Memory access control system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20091210 Year of fee payment: 4 |
|
LAPS | Lapse due to unpaid annual fee |