KR0119905B1 - Multi-processor system memory management - Google Patents

Multi-processor system memory management

Info

Publication number
KR0119905B1
KR0119905B1 KR1019930029351A KR930029351A KR0119905B1 KR 0119905 B1 KR0119905 B1 KR 0119905B1 KR 1019930029351 A KR1019930029351 A KR 1019930029351A KR 930029351 A KR930029351 A KR 930029351A KR 0119905 B1 KR0119905 B1 KR 0119905B1
Authority
KR
South Korea
Prior art keywords
input
information
queue
data
address
Prior art date
Application number
KR1019930029351A
Other languages
Korean (ko)
Other versions
KR950020228A (en
Inventor
박남진
한우종
윤석한
박경
Original Assignee
양승택
한국전자통신연구원
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 양승택, 한국전자통신연구원 filed Critical 양승택
Priority to KR1019930029351A priority Critical patent/KR0119905B1/en
Publication of KR950020228A publication Critical patent/KR950020228A/en
Application granted granted Critical
Publication of KR0119905B1 publication Critical patent/KR0119905B1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations 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/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Debugging And Monitoring (AREA)

Abstract

A method for controlling multi-stage input que used at a multi processor system memory is disclosed. The system comprises an interface(8) receiving an address bus information and a data bus information; a checking unit(8) for determining the input address and the input data are normal or not; an input que controller(10) for controlling the input of the information according to the output from the checking unit(8); and a memory system(5,6,7) for determining the access between a DRAM controller(14) and a DRAM array(15) by using a multi address que(11) and a multi-data que(12).

Description

다중 프로세서 시스템의 메모리에 사용된 다단 입력 큐의 제어 방법How to Control the Multiple Input Queues Used for Memory in Multiprocessor Systems

제1도는 공유 버스를 사용하는 다중 프로세서 시스템의 구성도.1 is a schematic diagram of a multiprocessor system using a shared bus.

제2도는 큐를 사용한 메모리 장치의 구성도.2 is a configuration diagram of a memory device using a queue.

제3도는 읽기 경우 입력 큐의 제어 타이밍도.3 is a control timing diagram of an input queue when read.

제4도는 읽기 경우 입력 큐의 제어 흐름도.4 is a control flow diagram of an input queue in case of reading.

제5도는 단일 쓰기 경우 입력 큐의 제어 타이밍도.5 is a control timing diagram of an input queue in the case of a single write.

제6도는 단일 쓰기 경우 입력 큐의 제어 흐름도.6 is a control flow diagram of an input queue in the case of a single write.

제7도는 블록 쓰기 경우 입력 큐의 제어 타이밍도.7 is a control timing diagram of an input queue when a block is written.

제8도는 블록 쓰기 경우 입력 큐의 제어 흐름도.8 is a control flowchart of an input queue when a block is written.

본 발명은 공유 버스를 사용하는 다중 프로세서 시스템의 메모리 장치에 사용되는 다단 입력 큐를 제어하는 방법에 관한 것이다.The present invention relates to a method for controlling a multi-stage input queue for use in a memory device of a multiprocessor system using a shared bus.

공유 버스를 사용하는 다중 프로세서 시스템은 제1도에 도시된 바와 같이 프로그램을 실행하는 복수 개의 프로세서(1,2,…,3)와 프로그램과 데이터를 저장하기 위한 복수 개의 메모리 자치(5,6,…,7) 그리고 이들간의 정보 통로인 버스(4)로 구성된다.As shown in FIG. 1, a multiprocessor system using a shared bus includes a plurality of processors 1, 2, ..., 3 for executing a program, and a plurality of memory autonomouss 5, 6, for storing programs and data. ..., 7) and a bus 4 which is an information path therebetween.

파이프 라인 프로토콜의 버스를 기반으로 하는 다중 프로세서 시스템에서 복수 개의 프로세서(1,2,…,3)가 요구하는 메모리 요청(메모리 장치에서 읽기 혹은 메모리 장치에 쓰기) 속도와 메모리 장치들을 구성하는 메모리 소자인 디램(DRAM)의 응답 속도간의 차이로 요구한 서비스(메모리 장치에서 읽기 혹은 메모리 장치에 쓰기)를 메모리 장치에서 받지 못한 프로세서들은 재시도를 하게 된다.Memory elements that make up memory devices and the speed of memory requests (read from or write to memory devices) required by multiple processors (1,2, ..., 3) in a multiprocessor system based on the bus of the pipeline protocol Processors that do not receive the requested service (read from memory device or write to memory device) from the memory device are retried due to the difference in response speed of DRAM.

그 결과는 공유 자원인 버스(4)의 부하를 높여 전체 시스템의 성능에 나쁜 영향을 미친다.The result is a load on the bus 4, which is a shared resource, which adversely affects the performance of the overall system.

이런 이유로 프로세서의 메모리 요청 속도와 메모리 장치의 디램 응답 속도와의 차이를 완충하는 큐를 사용한 메모리 장치(제2도)는 프로세서들의 재시도 횟수를 감소시키며 또한 공유 자원인 버스를 효율적으로 사용할 수 있게 하는 구조이다.For this reason, memory devices (figure 2) that use queues to buffer the difference between the processor's memory request rate and the memory device's DRAM response rate can reduce the number of retries of the processors and enable efficient use of the shared resource bus. It is a structure.

본 발명의 목적은 버스를 기반으로 하는 다중 프로세서 시스템에서 메모리 장치(5,6,…,7)의 응답 속도를 빠르게 하는 입력 큐의 제어 방법을 제공하는데 있다.An object of the present invention is to provide a method of controlling an input queue which speeds up a response speed of a memory device 5, 6, ..., 7 in a bus-based multiprocessor system.

이를 위하여 본 발명에서는 입력 큐 제어기(10)가 다단으로 구성되는 메모리 장치(제2도)의 입력 큐(11,12,13)에 유효하지 않은 정보(유효 검사기(9)가 입력 어드레스와 입력 데이터 정보로 판단함)는 입력되지않게 제어하고 이미 큐(11,12,13)에 입력된 정보 중 이후 유효하지 않은 것으로 판정된 정보(디램 제어기(14)가 오류 큐(13)의 출력 오류 위치 정보로 판단함)는 디램 제어기(14)가 디램 어레이(15) 접근 전에 무효화시키는 제어 방법을 통하여 메모리 장치(5,6,…,7)의 응답 속도를 빠르게 한다.To this end, in the present invention, information that is not valid for the input queues 11, 12, 13 of the memory device (FIG. 2) in which the input queue controller 10 is configured in multiple stages (the validity checker 9 has an input address and input data). Information judged to be information is not inputted and information that is determined to be later valid among the information already input to the queues 11, 12 and 13 (the DRAM controller 14 outputs the error location information of the error queue 13). The speed of the response of the memory devices 5, 6,..., 7 is increased through a control method that the DRAM controller 14 invalidates before the DRAM array 15 approaches.

상기 유효 검사기(9)가 입력 어드레스와 입력 데이터 정보를 유효하지 않은 정보로 판단하는 경우는 다음과 같다.The validity checker 9 determines the input address and the input data information as invalid information as follows.

프로세서가 전송한 어드레스 버스 정보와 데이터 버스 정보가 버스(4)를 거치는 동안에 오류가 발생하여 유효 검사기(9)가 검출한 경우와 한 프로세서(1)가 요청한 데이터가 메모리 장치(5,6,…,7)에 있지 않고 다른 프로세서(2)의 내부 메모리에 있을 경우 메모리 장치(5,6,…,7)의 유효 검사기(9)는 이 요청을 유효하지 않은 정보로 판단한다.When the validity checker 9 detects an error while the address bus information and the data bus information transmitted by the processor pass through the bus 4 and the data requested by the processor 1 is stored in the memory devices 5, 6,... If not, the validity checker 9 of the memory devices 5, 6, ..., 7 determines this request as invalid information if it is in the internal memory of the other processor 2.

제2도는 제1도의 메모리 장치(5,6,…,7)에 해당하는 부분으로 프로세서의 메모리 요청 속도와 메모리 장치의 디램 응답 속도와의 차이를 완충하는 큐를 사용한 메모리 장치의 구성을 나타낸다.FIG. 2 is a portion corresponding to the memory devices 5, 6, ..., 7 of FIG. 1 and shows a configuration of a memory device using a queue buffering a difference between a memory request rate of a processor and a DRAM response speed of the memory device.

제1도에 있는 프로세서들의 메모리 요청은 메모리 장치(5,6,…,7)에서 정보를 가져오는 읽기와 메모리 장치(5,6,…,7)에 정보를 기록하는 쓰기로 구분된다.The memory requests of the processors in FIG. 1 are divided into reads which get information from the memory devices 5, 6, ..., and writes that write information to the memory devices 5, 6, ..., 7.

쓰기는 버스(4) 데이터 폭 크기의 데이터를 기록하는 단일 쓰기와 버스(4) 데이터 폭 크기의 4배 정보를 한번에 기록하는 블록 쓰기의 두가지 경우로 나눌 수 있다.Writes can be divided into two cases: a single write that writes data of the bus 4 data width size and a block write that writes four times the information of the bus 4 data width size at a time.

상기 프로세서들(1,2,…,3)의 메모리 요청 정보(제2도의 어드레스 버스 정보와 데이터 버스 정보)는 버스 인터페이스(bus interface)(8)를 통해 입력 큐 제어기(10)의 제어하에 해당 입력 큐(11,12,13)에 저장되고 디램 제어기(14)의 제어에 따라 디램 어레이(DRAM array)(15)에서 정보를 읽거나 디램 어레이에 정보를 기록한다.The memory request information (address bus information and data bus information of FIG. 2) of the processors 1, 2, ..., 3 corresponds to the control of the input queue controller 10 through a bus interface 8. The information is stored in the input queues 11, 12, and 13 and is read from or written to the DRAM array 15 under the control of the DRAM controller 14.

[가] 읽기 경우 입력 큐의 제어 타이밍 및 제어에 대해 설명하면 다음과 같다.[A] In case of reading, control timing and control of input queue are as follows.

먼저 프로세서들(1,2,…,3)이 메모리 장치들에 저장된 정보를 읽어가는 읽기 경우 입력 큐의 제어 타이밍 및 그 제어 과정을 각각 나타낸 제3도와 제4도를 참조하면서 읽기 경우 입력 큐를 제어하는 방법에 대해 설명한다.First, when the processors (1, 2, ..., 3) read the information stored in the memory devices, the input queue is read while referring to FIGS. 3 and 4 showing control timing of the input queue and its control process, respectively. It demonstrates how to control.

프로세서들의 메모리 요청을 나태는 정보, 즉 어드레스 버스 정보(17)를 사용하여 버스 인터페이스(8)는 읽기 동작임을 인식하고 프로세서가 전송한 어드레스 버스 정보가 유효한지 여부를 유효 검사기(9)가 검사한다(27).Using the information indicating the memory requests of the processors, namely the address bus information 17, the bus interface 8 recognizes that the read operation is performed and the validity checker 9 checks whether the address bus information transmitted by the processor is valid. (27).

[가-1] 어드레스 버스 정보가 유효한 경우.[A-1] Address bus information is valid.

어드레스 버스 정보가 유효한 경우(21)는 어드레스 입력 제어(20)의 라이징 에지(rising edge)에서 입력 어드레스(18,IA0)를 어드레스 큐(11)에 넣고 제어를 종료한다(22,30,31).If the address bus information is valid (21), at the rising edge of the address input control 20, the input address 18, IAO is put into the address queue 11 and the control ends (22, 30, 31). .

[가-2] 어드레스 버스 정보가 유효하지 않는 경우.[A-2] Address bus information is invalid.

어드레스 버스 정보가 유효하지 않는 경우(23)는 어드레스 입력 제어(20)의 라이징 에지가 생기지 않게하여(23) 입력 어드레스(18,IA1)를 어드레스 큐(11)에 넣지 않고 제어를 종료한다(24,28,29).If the address bus information is invalid (23), the rising edge of the address input control 20 is prevented from occurring (23) and control is terminated without putting the input addresses 18 and IA1 into the address queue 11 (24). , 28,29).

어드레스 버스 정보가 유효하지 않는 경우는 프로세서가 요청한 읽기 동작이 메모리 장치에서 유효하지 않음을 나타내므로 입력 큐 제어기(10)는 입력 어드레스(18,IA1)에 해당하는 디램 어레이(15) 접근을 실행하지 않는다.If the address bus information is invalid, the input queue controller 10 does not execute access to the DRAM array 15 corresponding to the input addresses 18 and IA1 because the read operation requested by the processor is invalid in the memory device. Do not.

[나] 단일 쓰기 경우 입력 큐의 제어 타이밍 및 제어에 대해 설명하면 다음과 같다.[B] The following describes the control timing and control of the input queue in the case of a single write.

단일 쓰기의 경우 메모리 장치의 입력 큐를 제어하는 방법에 대해 입력 큐의 제어 타이밍 도인 제5도와 제어 흐름도인 제6도를 참조하여 설명하면 다음과 같다.A method of controlling an input queue of a memory device in the case of a single write will be described with reference to FIG. 5 which is a control timing diagram of the input queue and FIG. 6 which is a control flowchart.

프로세서들의 메모리 요청을 나타내는 정보, 즉 어드레스 버스 정보(33)를 사용하여 버스 인터페이스(8)는 단일 쓰기 동작임을 인식하고 프로세서가 전송한 어드레스 버스 정보가 유효한지 여부를 유효 검사기(9)가 검사한다(61).Using the information representing the memory requests of the processors, namely address bus information 33, the bus interface 8 recognizes that it is a single write operation and the validity checker 9 checks whether the address bus information sent by the processor is valid. (61).

[나-1] 어드레스 버스 정보와 데이터 버스 정보가 유효한 경우.[B-1] Address bus information and data bus information are valid.

어드레스 버스 정보가 유효한 경우(43)는 어드레스 입력 제어(36)의 라이징 에지에서 입력 어드레서(34,IA0)를 어드레스 큐(11)에 넣는다(44,64).When the address bus information is valid (43), the input address 34 (IA0) is put into the address queue 11 (44, 64) at the rising edge of the address input control 36.

이어서 프로세서가 전송한 데이터 버스 정보(37)가 유효한지 여부를 유효 검사기(9)가 검사한다(65).Valid validator 9 then checks if the data bus information 37 sent by the processor is valid (65).

데이터 버스 정보가 유효한 경우(45)는 데이터 이력 제어(40)의 라이징 에지에서 입력 데이터(38,ID0)를 데이터 큐(12)에 넣고(46,68), 동일 시점에 오류 위치(41,IE0)를 4비트 이진수 정보 0000로 하여(47) 오류 입력 제어(42)의 라이징 에지에서 오류 위치(41,IE0)를 오류 큐(13)에 넣고 제어를 종료한다(48,49,68,69).If the data bus information is valid (45), the input data 38, ID0 is put into the data queue 12 (46, 68) at the rising edge of the data history control 40, and the error position 41, IE0 at the same point in time. ) Is set to the 4-bit binary information 0000 (47) and the error position 41, IE0 is put in the error queue 13 at the rising edge of the error input control 42 (48, 49, 68, 69). .

오류 위치(41,IE0)를 4비트 이진수 정보 0000로 만드는 것은 어드레스 큐(11)에 들어간 입력 어드레스(34,IA0)와 데이터 큐(12)에 들어간 입력 데이터(38,ID0)가 유효한 정보임을 디램 제어기(14)에게 알리기 위함이다.Making the error location 41, IE0 into 4-bit binary information 0000 indicates that the input address 34, IA0 entered into the address queue 11 and the input data 38, ID0 entered into the data queue 12 are valid information. This is to inform the controller 14.

[나-2] 어드레스 버스 정보가 유효하지 않는 경우.[B-2] The address bus information is invalid.

어드레스 버스 정보가 유효하지 않는 경우(50)는 어드레스 입력 제어(36)의 라이징 에지가 생기지 않게하여 이력 어드레스(34,IA1)를 어드레스 큐(11)에 넣지 않고 또한 데이터 버스 정보의 유효 여부에 관계없이 데이터 입력 제어(40)의 라이징 에지가 생기지 않게 하여(52), 입력 데이터(38,ID1)를 데이터 큐(12)에 넣지 않고(53) 제어를 종료한다(51,62,63).If the address bus information is invalid (50), the rising edge of the address input control 36 is prevented from occurring so that the history address 34, IA1 is not put in the address queue 11 and the data bus information is valid or not. The rising edge of the data input control 40 is prevented from being generated (52), and control is terminated without putting the input data 38, ID1 into the data queue 12 (53) (51, 62, 63).

어드레스 버스 정보가 유효하지 않는 경우는 프로세서가 요청한 단일 쓰기 동작이 메모리 장치에서 유효하지 않음을 나타내므로 입력 큐 제어기(10)는 입력 어드레스(34,IA1)가 어드레스 큐(11)에 입력되지 않게 제어하고 데이터 버스 정보의 유효 여부에 관계없이 입력 데이터(38,ID1)가 데이터 큐(12)에 입력되지 않게 제어한다. 이로써 디램 제어기(14)는 입력 어드레스(34,IA1)에 해당하는 디램 어레이(15) 접근을 실행하지 않는다.If the address bus information is not valid, the single write operation requested by the processor is not valid in the memory device, so the input queue controller 10 controls the input addresses 34 and IA1 not to be entered into the address queue 11. The input data 38, ID1 is controlled not to be input to the data queue 12 regardless of whether the data bus information is valid. As a result, the DRAM controller 14 does not execute access to the DRAM array 15 corresponding to the input addresses 34 and IA1.

[나-3] 어드레스 버스 정보가 유효하고 데이터 버스 정보가 유효하지 않는 경우.[B-3] The address bus information is valid and the data bus information is invalid.

어드레스 버스 정보가 유효한 경우(54)는 어드레스 입력 제어(36)의 라이징 에지에서 입력 어드레스(34,IA2)를 어드레스 큐(11)에 넣는다(55,64).If the address bus information is valid (54), input addresses 34, IA2 are placed in the address queue 11 at the rising edge of the address input control 36 (55,64).

이어서 프로세서가 전송한 데이터 버스 정보(37)가 유효한지 여부를 유효 검사기(9)가 검사한다(65).Valid validator 9 then checks if the data bus information 37 sent by the processor is valid (65).

데이터 버스 정보가 유효하지 않는 경우(56)는 데이터 입력 제어(40)의 라이징 에지가 생기지 않게 하여 입력 데이터(38,ID2)를 데이터 큐(12)에 넣지 않고(57,66), 동일 시점에 오류 위치(41,IE2)를 4비틀 이진수 정보 0001로 하여(58) 오류 입력 제어(42)의 라이징 에지에서 오류 위치(41,IE2)를 오류 큐(13)에 넣고 제어를 종료한다(59,60,66,67).If the data bus information is invalid (56), the rising edge of the data input control 40 is prevented from occurring so that the input data 38, ID2 is not put in the data queue 12 (57, 66) at the same time. With the error position 41, IE2 as the four-bit binary information 0001 (58), the error position 41, IE2 is put in the error queue 13 at the rising edge of the error input control 42, and the control is terminated (59, 60,66,67).

오류 위치(41,IE2)를 4비트 이진수 정보 0001로 만드는 것은 어드레스 큐(11)에 들어간 입력 어드레스(34,IA2)가 유효하지 않은 정보임을 디램 제어기(14)에게 알리기 위함이다.Making the error location 41, IE2 into 4-bit binary information 0001 is to inform the DRAM controller 14 that the input address 34, IA2 entered in the address queue 11 is invalid information.

디램 제어기(14)는 오류 위치(41,IE2)의 4비트 이진수 정보 0001를 보고 이전에 어드레스 큐(11)에 들어간 입력 어드레스(34,IA2)가 유효하지 않은 정보임을 인식하여 입력 어드레스(34,IA2) 정보로 디램 어레이(15)에 접근하지 않는다.The DRAM controller 14 looks at the 4-bit binary information 0001 of the error position 41, IE2, and recognizes that the input addresses 34 and IA2 previously entered into the address queue 11 are invalid information. The DRAM array 15 is not accessed by the IA2) information.

메모리 장치들을 구성하는 메모리 소자인 디램에 접근하는데 시간이 가장 많이 걸리는 것을 고려하여 실제 유효한 정보만 디램 어레이(15)에 접근하게 하는 상기 제어 방법은 메모리 장치의 응답 속도를 향상시킨다.Considering that it takes the most time to access the DRAM, which is a memory device constituting the memory devices, the control method of allowing only the actual information to access the DRAM array 15 improves the response speed of the memory device.

[다] 블록 쓰기 경우 입력 큐의 제어 타이밍 및 제어에 대해 설명하면 다음과 같다.[C] The following describes the control timing and control of the input queue when writing a block.

블록 쓰기의 경우 메모리 장치의 입력 큐를 제어하는 방법에 대해 입력 큐의 제어 타이밍 도인 제7도와 제어 흐름도인 제8도를 참조하여 설명하면 다음과 같다.In the case of block writing, a method of controlling an input queue of a memory device will be described with reference to FIG. 7 which is a control timing diagram of the input queue and FIG. 8 which is a control flowchart.

프로세서들의 메모리 요청을 나타내는 정보 즉 어드레스 버스 정보(71)를 사용하여 버스 인터페이스(8)는 블록 쓰기 동작임을 인식하고 프로세서가 전송한 어드레스 버스 정보가 유효한지 여부를 유효 검사기(9)가 검사한다(107).Using the information indicating the memory requests of the processors, namely the address bus information 71, the bus interface 8 recognizes that it is a block write operation and the validity checker 9 checks whether the address bus information sent by the processor is valid ( 107).

[다-1] 어드레스 버스 정보와 4번의 데이터 버스 정보가 유효한 경우.[C-1] When address bus information and data bus number 4 are valid.

어드레스 버스 정보가 유효한 경우(81)는 어드레스 입력 제어(74)의 라이징 에지에서 입력 어드레스(72,IA0)를 어드레스 큐(11)에 넣는다(82,110).When the address bus information is valid (81), the input address 72 (IA0) is put into the address queue 11 (82,110) at the rising edge of the address input control 74.

이어서 프로세서가 전송한 첫번째 데이터 버스 정보(75,BD00)가 유효한지 여부를 유효 검사기(9)가 검사한다(111).The validity checker 9 then checks (111) whether the first data bus information 75, BD00 sent by the processor is valid.

첫번째 데이터 버스 정보가 유효한 경우(83)는 데이터 입력 제어(78)의 라이징 에지에서 입력 데이터(76,ID00)를 데이터 큐(12)에 넣는다(84,114).If the first data bus information is valid (83), put the input data 76, ID00 into the data queue 12 (84, 114) at the rising edge of data input control 78.

이어서 프로세서가 전송한 두번째 데이터 버스 정보(75,BD01)가 유효한지 여부를 유효 검사기(9)가 검사한다(115).The validity checker 9 then checks (115) whether the second data bus information 75, BD01 sent by the processor is valid.

두번째 데이터 버스 정보가 유효한 경우(85)는 데이터 입력 제어(78)의 라이징 에지에서 입력 데이터(76,ID01)를 데이터 큐(12)에 넣는다(86,118).If the second data bus information is valid (85), put the input data 76, ID01 into the data queue 12 at the rising edge of data input control 78 (86, 118).

이어서 프로세서가 전송한 세번째 데이터 버스 정보(75,BD02)가 유효한지 여부를 유효 검사기(9)가 검사한다(119).The validity checker 9 then checks whether the third data bus information 75, BD02 sent by the processor is valid (119).

세번째 데이터 버스 정보가 유효한 경우(87)는 데이터 입력 제어(78)의 라이징 에지에서 입력 데이터(76,ID02)를 데이터 큐(12)에 넣는다(88,122).If the third data bus information is valid (87), put the input data 76, ID02 in the data queue 12 at the rising edge of data input control 78 (88, 122).

이어서 프로세서가 전송한 네번째 데이터 버스 정보(75,BD03)가 유효한지 여부를 유효 검사기(9)가 검사한다(123).The validity checker 9 then checks whether the fourth data bus information 75 (BD03) transmitted by the processor is valid (123).

네번째 데이터 버스 정보가 유효한 경우(89)는 데이터 입력 제어(78)의 라이징 에지에서 입력 데이터(76,ID03)를 데이터 큐(12)에 넣는다(90,126).If the fourth data bus information is valid (89), put the input data 76, ID03 into the data queue 12 (90, 126) at the rising edge of data input control 78.

동일 시점에 오류 위치(79,IE0)를 4비트 이진수 정보 0000로 하여(91) 오류 입력 제어(80)의 라이징 에지에서 오류 위치(79,IE0)를 오류 큐(13)에 넣고 제어를 종료한다(92,93,126,127).At the same time, the error position 79, IE0 is set as 4-bit binary information 0000 (91) and the error position 79, IE0 is put in the error queue 13 at the rising edge of the error input control 80, and the control ends. (92,93,126,127).

오류 위치(79,IE0)를 4비트 이진수 정보 0000로 만드는 것은 어드레스 큐(11)에 들어간 입력 어드레스(72,IA0)와 데이터 큐(12)에 들어간 입력 데이터(76,ID00,ID01,ID02,ID03)가 유효한 정보임을 디램 제어기(14)에게 알리기 위함이다.Making the error location 79, IE0 into the 4-bit binary information 0000 means the input address 72, IA0 entered into the address queue 11 and the input data 76, ID00, ID01, ID02, ID03 entered into the data queue 12. ) Is to inform the DRAM controller 14 that is valid information.

[다-2] 어드레스 버스 정보가 유효하지 않는 경우.[C-2] The address bus information is invalid.

어드레스 버스 정보가 유효하지 않는 경우(94)는 어드레스 입력 제어(74)의 라이징 에지가 생기지 않게하여 입력 어드레스(72,IA1)를 어드레스 큐(11)에 넣지 않고 또한 데이터 버스 정보의 유효 여부에 관계없이 데이터 입력 제어(78)의 라이징 에지가 생기지 않게 하여(96), 이력 데이터(76,ID10,ID11,ID12,ID13)를 데이터 큐(12)에 넣지 않고(97) 제어를 종료한다(95,108,109).If the address bus information is invalid (94), the rising edge of the address input control 74 is prevented from occurring so that the input address 72 (IA1) is not put in the address queue 11 and the data bus information is valid. The rising edge of the data input control 78 is prevented from occurring (96), and the control is terminated without putting the historical data 76, ID10, ID11, ID12, and ID13 into the data queue 12 (97) (95, 108, 109). .

어드레스 버스 정보가 유효하지 않는 경우는 프로세서가 요청한 블록 쓰기 동작이 메모리 장치에서 유효하지 않음을 나타내므로 입력 큐 제어기(10)는 입력 어드레스(72,IA1)가 어드레스 큐(11)에 입력되지 않게 제어하고 데이터 버스 정보의 유효 여부에 관계없이 입력 데이터(76,ID10,ID11,ID12,ID13)가 데이터 큐(12)에 입력되지 않게 제어한다. 이로써 디램 제어기(14)는 입력 어드레스(72,IA1)에 해당하는 디램 어레이(15) 접근을 실행하지 않는다.When the address bus information is not valid, the block write operation requested by the processor is not valid in the memory device. Therefore, the input queue controller 10 controls the input addresses 72 and IA1 not to be input to the address queue 11. The input data 76, ID10, ID11, ID12, and ID13 are not input to the data queue 12 regardless of whether the data bus information is valid. Thus, the DRAM controller 14 does not execute access to the DRAM array 15 corresponding to the input addresses 72 and IA1.

[다-3] 어드레스 버스 정보가 유효하고 데이터 버스 정보가 유효하지 않는 경우.[C-3] The address bus information is valid and the data bus information is invalid.

[다-3-1] 어드레스 버스 정보가 유효하고 첫번째 데이터 버스 정보가 유효하고 두번째 데이터 버스 정보가 유효하지 않는 경우.[C-3-1] When the address bus information is valid, the first data bus information is valid and the second data bus information is invalid.

어드레스 버스 정보가 유효한 경우(98)는 어드레스 입력 제어(74)의 라이징 에지에서 입력 어드레스(72,IA2)를 어드레스 큐(11)에 넣는다(99,110).If the address bus information is valid (98), put the input addresses (72, IA2) into the address queue (11) at the rising edge of the address input control (74).

이어서 프로세서가 전송한 첫번째 데이터 버스 정보(75,BD20)가 유효한지 여부를 유효 검사기(9)가 검사한다(111).The validity checker 9 then checks (111) whether the first data bus information 75 (BD20) sent by the processor is valid.

첫번째 데이터 버스 정보가 유효한 경우(100)는 데이터 입력 제어(78)의 라이징 에지에서 입력 데이터(76,ID20)를 데이터 큐(12)에 넣는다(101,114).If the first data bus information is valid (100), put the input data 76, ID20 into the data queue 12 at the rising edge of data input control 78 (101, 114).

이어서 프로세서가 전송한 두번째 데이터 버스 정보(75,BD21)가 유효한지 여부를 유효 검사기(9)가 검사한다(115).The validity checker 9 then checks (115) whether the second data bus information 75 (BD21) sent by the processor is valid.

두번째 데이터 버스 정보가 유효하지 않는 경우(102)는 데이터 입력 제어(78)의 라이징 에지가 생기지 않게 하여 입력 데이터(76,ID21)를 데이터 큐(12)에 넣지 않고(103,116), 동일 시점에 오류 위치(79,IE2)를 4비트 이진수 정보 0010로 하여(104) 오류 입력 제어(80)의 라이징 에지에서 오류 위치(79,IE2)를 오류 큐(13)에 넣고 제어를 종료한다(105,106,116,117).If the second data bus information is invalid (102), the rising edge of the data input control 78 does not occur so that the input data 76, ID21 is not put in the data queue 12 (103, 116) and at the same time error. With the position 79, IE2 as 4-bit binary information 0010 (104), the error position 79, IE2 is put in the error queue 13 at the rising edge of the error input control 80 (105, 106, 116, 117).

두번째 데이터 버스 정보가 유효하지 않는 경우에 이후 세번째와 네번째 데이터 버스 정보(75,BD22,BD23)의 유효 여부에 관계없이 세번째와 네번째 데이터 버스 정보는 데이터 큐에 넣지 않는다.If the second data bus information is not valid, the third and fourth data bus information are not put in the data queue regardless of whether the third and fourth data bus information 75, BD22, and BD23 are valid.

오류 위치(79,IE2)를 4비트 이진수 정보 0010로 만드는 것은 어드레스 큐(11)에 들어간 입력 어드레스(72,IA2)와 데이터 큐(12)에 들어간 첫번째 입력 데이터(76,ID20)가 유효하지 않은 정보임을 디램 제어기(14)에게 알리기 위함이다.Making the error location 79, IE2 into 4-bit binary information 0010 means that the input address 72, IA2 entered into the address queue 11 and the first input data 76, ID20 entered into the data queue 12 are invalid. This is to inform the DRAM controller 14 of the information.

디램 제어기(14)는 오류 위치(79,IE2)의 4비트 이진수 정보 0010를 보고 이전에 어드레스 큐(11)에 들어간 입력 어드레스(72,IA2)와 데이터 큐(12)에 들어간 첫번째 입력 데이터(76,ID20)가 유효하지 않은 정보임을 인식하여 입력 어드레스(72,IA2) 정보로 디램 어레이(15)에 접근하지 않는다.The DRAM controller 14 looks at the 4-bit binary information 0010 of the error location 79, IE2, and input address 72, IA2 previously entered into the address queue 11 and the first input data 76 entered into the data queue 12. Recognizing that ID20 is invalid information does not access the DRAM array 15 with input address 72, IA2 information.

메모리 장치들을 구성하는 메모리 소자인 디램에 접근하는데 시간이 가장 많이 걸리는 것을 고려하여 실제 유효한 정보만 디램 어레이(15)에 접근하게 하는 상기 제어 방법은 메모리 장치(5,6,7)의 응답 속도를 빠르게 한다.In consideration of the fact that it takes the most time to access the DRAM, which is a memory device constituting the memory devices, the control method of accessing the DRAM array 15 to only the actual valid information may increase the response speed of the memory devices 5, 6, and 7. Do it quickly.

[다-3-2] 어드레스 버스 정보가 유효하고 데이터 버스 정보가 유효하지 않는 경우.[C-3-2] When address bus information is valid and data bus information is invalid.

어드레스 버스 정보가 유효하고 데이터 버스 정보가 유효하지 않는 경우가 발생할 가지 수는 [다-3-1]에서 기술한 어드레스 버스 정보가 유효하고 첫번째 데이터 버스 정보가 유효하고 두번째 데이터 버스 정보가 유효하지 않는 경우를 포함하여 다수이다. 이를 제8도 블록 쓰기 경우 입력 큐의 제어 흐름도를 참조로 설명하면 다음과 같다.The number of cases where the address bus information is valid and the data bus information is invalid is that the address bus information described in [D-3-1] is valid, the first data bus information is valid, and the second data bus information is invalid. Including cases. The block diagram of FIG. 8 will be described below with reference to a control flowchart of an input queue.

프로세서가 전송한 첫번째 데이터 버스 정보가 유효한지 여부를 검사기(9)가 검사한다(111).The checker 9 checks whether the first data bus information transmitted by the processor is valid (111).

첫번째 데이터 버스 정보가 유효하지 않는 경우는 첫번째 입력 데이터를 데이터 큐(12)에 넣지 않고(112), 동일 시점에 오류 위치 정보를 4비트 이진수 정보 0001로 하여(12), 오류 큐(13)에 넣고 제어를 종료한다(113).If the first data bus information is not valid, the first input data is not put in the data queue 12 (112), and at the same time, the error position information is set to the 4-bit binary information 0001 (12), and the error queue 13 is entered. Control is terminated (113).

첫번째 데이터 버스 정보가 유효하지 않는 경우에 이후 두번째와 세번째와 네번째 데이터 버스 정보의 유효 여부에 관계없이 두번째와 세번째와 네번째 데이터 버스 정보는 데이터 큐에 넣지 않는다.If the first data bus information is invalid, the second, third and fourth data bus information are not put in the data queue regardless of whether the second, third and fourth data bus information is valid later.

오류 위치 정보를 4비트 이진수 정보 0001로 만드는 것을 어드레스 큐(11)에 들어간 입력 어드레스(110)가 유효하지 않은 정보임을 디램 제어기(14)에게 알려서 디램 제어기(14)가 디램 제어기(15) 접근 전에 유효하지 않은 정보를 무효화시키는 제어 수단으로 사용하기 위함이다.Before the DRAM controller 14 approaches the DRAM controller 15, the DRAM controller 14 informs the DRAM controller 14 that the input address 110 entered into the address queue 11 is invalid information to convert the error location information into 4-bit binary information 0001. This is for use as a control means for invalidating invalid information.

세번째 데이터 버스 정보가 유효하지 않는 경우는 세번째 입력 데이터를 데이터 큐(12)에 넣지 않고(120), 동일 시점에 오류 위치 정보를 4비트 이진수 정보 0100로 하여(120), 오류 큐(13)에 넣고 제어를 종료한다(121).If the third data bus information is invalid, the third input data is not put into the data queue 12 (120), and at the same time, the error position information is set to the 4-bit binary information 0100 (120), and the error queue 13 Control is terminated (121).

세번째 데이터 버스 정보가 유효하지 않는 경우에 이후 네번째 데이터 버스 정보의 유효 여부에 관계없이 네번째 데이터 버스 정보는 데이터 큐에 넣지 않는다.If the third data bus information is invalid, the fourth data bus information is not put in the data queue regardless of whether the fourth data bus information is valid later.

오류 위치 정보를 4비트 이진수 정보 0100로 만드는 것을 어드레스 큐(11)에 들어간 입력 어드레스(110)와 데이터 큐(12)에 들어간 첫번째 입력 데이터(114)와 두번째 입력 데이터(118)가 유효하지 않은 정보임을 디램 제어기(14)에게 알려서 디램 제어기(14)가 디램 어레이(15) 접근 전에 유효하지 않은 정보를 무효화시키는 제어 수단으로 사용하기 위함이다.The input address 110 entered into the address queue 11 and the first input data 114 and the second input data 118 entered into the data queue 12 to invalidate the error location information into 4-bit binary information 0100 are invalid information. This is to inform the DRAM controller 14 that the DRAM controller 14 is used as a control means for invalidating information that is not valid before the DRAM array 15 approaches.

네번째 데이터 버스 정보가 유효하지 않는 경우는 네번째 입력 데이터를 데이터 큐(12)에 넣지 않고(124), 동일 시점에 오류 위치 정보를 4비트 이진수 정보 1000로 하여(124), 오류 큐(13)에 넣고 제어를 종료한다(125).If the fourth data bus information is not valid, the fourth input data is not put in the data queue 12 (124), and at the same time, the error position information is assumed to be 4-bit binary information 1000 (124), and the error queue 13 is entered. And control ends (125).

오류 위치 정보를 4비트 이진수 정보 1000로 만드는 것은 어드레스 큐(11)에 들어간 입력 어드레스(110)와 데이터 큐(12)에 들어간 첫번째 입력 데이터(114)와 두번째 입력 데이터(118)와 세번째 입력 데이터(122)가 유효하지 않은 정보임을 디램 제어기(14)에게 알려서 디램 제어기(14)가 디램 어레이(15) 접근 전에 유효하지 않은 정보를 무효화시키는 제어 수단으로 사용하기 위함이다.Making the error location information 4 bit binary information 1000 is the first input data 114 entered into the address queue 11 and the first input data 114 entered into the data queue 12, the second input data 118 and the third input data ( This is to inform the DRAM controller 14 that 122 is invalid information so that the DRAM controller 14 can be used as a control means for invalidating invalid information before the DRAM array 15 approaches.

Claims (1)

프로세서들의 메모리 요청 정보(읽기,단일 쓰기,블록 쓰기)를 나타내는 버스 상의 어드레스 버스 정보와 데이터 버스 정보를 받는 버스 인터페이스(8)와, 이 버스 인터페이스(8)를 통해 들어온 입력 어드레스와 입력 데이터의 유효 여부를 검사하는 유효 검사기(9)와, 유효 검사 결과에 따라서 다단 어드레스 큐(11)와 다단 데이터 큐(12) 및 다단 오류 큐(13)에 각각 입력 어드레스와 입력 데이터와 오류 위치의 정보를 입력할 것인지를 제어하는 입력 큐 제어기(10)와, 다단 어드레스 큐(11)와 다단 데이터 큐(12) 및 다단 오류 큐(13)의 출력을 사용하여 디램 제어기(14)가 디램 어레이(15)에 접근 여부를 결정하는 메모리 장치를 가지는 파이프 라인 프로토콜 버스를 기반으로 하는 다중 프로세서 시스템에서 상기 다단 입력 큐들을 제어하는 방법에 있어서, 상기 유효 검사기(9)의 검사에 의해 유효하지 않은 정보는 입력 큐(11,12,13)에 입력되지 않게 하거나 이미 입력 큐(11,12,13)에 입력된 정보중 이후 유효하지 않은 것으로 판정된 정보는 무효화시키는 제어 방법을 통하여 상기 메모리 장치의 응답 속도를 향상시키는 것을 특징으로 하는 다중 프로세서 시스템의 메모리에 사용된 다단 입력 큐의 제어 방법.A bus interface 8 that receives address bus information and data bus information on the bus representing memory request information (read, single write, block write) of the processors, and the validity of the input address and input data entered through the bus interface 8. Input information, input data, and error location information are inputted into the validity checker 9 for checking whether there is a validity, and the multistage address queue 11, the multistage data queue 12, and the multistage error queue 13 according to the validity check result. The DRAM controller 14 is connected to the DRAM array 15 by using the input queue controller 10 for controlling whether or not to output the multi-stage address queue 11, the multi-stage data queue 12, and the multi-stage error queue 13. A method for controlling the multi-stage input queues in a multiprocessor system based on a pipelined protocol bus having a memory device for determining whether to access the Information that is not valid by the inspection of the inspector 9 is not input to the input queues 11, 12, 13 or is determined to be later invalid among information already input to the input queues 11, 12, 13; The control method of the multi-stage input queue used in the memory of the multiprocessor system, characterized in that for improving the response speed of the memory device through a control method to invalidate.
KR1019930029351A 1993-12-23 1993-12-23 Multi-processor system memory management KR0119905B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019930029351A KR0119905B1 (en) 1993-12-23 1993-12-23 Multi-processor system memory management

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019930029351A KR0119905B1 (en) 1993-12-23 1993-12-23 Multi-processor system memory management

Publications (2)

Publication Number Publication Date
KR950020228A KR950020228A (en) 1995-07-24
KR0119905B1 true KR0119905B1 (en) 1997-10-29

Family

ID=19372401

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019930029351A KR0119905B1 (en) 1993-12-23 1993-12-23 Multi-processor system memory management

Country Status (1)

Country Link
KR (1) KR0119905B1 (en)

Also Published As

Publication number Publication date
KR950020228A (en) 1995-07-24

Similar Documents

Publication Publication Date Title
US7047322B1 (en) System and method for performing conflict resolution and flow control in a multiprocessor system
US5388247A (en) History buffer control to reduce unnecessary allocations in a memory stream buffer
US5754800A (en) Multi processor system having dynamic priority based on row match of previously serviced address, number of times denied service and number of times serviced without interruption
US4136386A (en) Backing store access coordination in a multi-processor system
US5586294A (en) Method for increased performance from a memory stream buffer by eliminating read-modify-write streams from history buffer
US5375223A (en) Single register arbiter circuit
US5371870A (en) Stream buffer memory having a multiple-entry address history buffer for detecting sequential reads to initiate prefetching
US5809280A (en) Adaptive ahead FIFO with LRU replacement
CA1300280C (en) Central processor unit for digital data processing system including write buffer management mechanism
US5598550A (en) Cache controller for processing simultaneous cache accesses
US7668997B2 (en) High speed bus system that incorporates uni-directional point-to-point buses
US6332179B1 (en) Allocation for back-to-back misses in a directory based cache
US20040221131A1 (en) Virtual memory translation control by TLB purge monitoring
US5371857A (en) Input/output interruption control system for a virtual machine
KR20210025344A (en) Main memory device having heterogeneous memories, computer system including the same and data management method thereof
EP1030243B1 (en) Optimized hardware cleaning function for virtual index virtual tag data cache
JP2561261B2 (en) Buffer storage access method
US5623626A (en) Logical cache memory for multi-processor system
KR102538679B1 (en) Memory system and operating method of memory system
US6374334B1 (en) Data processing apparatus with a cache controlling device
KR0119905B1 (en) Multi-processor system memory management
US5201052A (en) System for transferring first and second ring information from program status word register and store buffer
GB2037466A (en) Computer with cache memory
JPH0330175B2 (en)
US20210218401A1 (en) Apparatus and method

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20030728

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee