KR100210404B1 - An apparatus for controlling access of memory in dual bus system - Google Patents

An apparatus for controlling access of memory in dual bus system Download PDF

Info

Publication number
KR100210404B1
KR100210404B1 KR1019960057193A KR19960057193A KR100210404B1 KR 100210404 B1 KR100210404 B1 KR 100210404B1 KR 1019960057193 A KR1019960057193 A KR 1019960057193A KR 19960057193 A KR19960057193 A KR 19960057193A KR 100210404 B1 KR100210404 B1 KR 100210404B1
Authority
KR
South Korea
Prior art keywords
bus
memory
signal
processor
bus master
Prior art date
Application number
KR1019960057193A
Other languages
Korean (ko)
Other versions
KR19980038311A (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 KR1019960057193A priority Critical patent/KR100210404B1/en
Publication of KR19980038311A publication Critical patent/KR19980038311A/en
Application granted granted Critical
Publication of KR100210404B1 publication Critical patent/KR100210404B1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • G06F13/1663Access to shared memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/368Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control
    • G06F13/376Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control using a contention resolving method, e.g. collision detection, collision avoidance
    • 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

Abstract

본 발명에 따른 공유메모리 억세스 제어장치는 독자적인 어드레스 버스(AB1)와 데이터 버스(DB1)를 가진 버스 마스터(210)와, 버스 마스터(210)와 다른 어드레스버스(AB2)와 데이터 버스(DB2)를 갖는 프로세서(240: CPU), 버스 마스터(210)로부터 버스요구(bus req)신호가 입력되면 버스 허락(bus grant)신호를 출력하고, 허락인지(grant ack)신호가 입력되면 버스 마스터(210)가 출력하는 상위 어드레스(AB1)를 해석하여 해당 메모리모듈 요구(MEM1∼MEMn)신호를 출력하는 프리룩 로직(220), 상기 프리룩 로직(220)으로부터 혹은 상기 프로세서(240)로부터 특정 메모리모듈을 요구하는 신호가 입력되면 충돌 여부를 검출하여 충돌되지 않으면 상기 버스 마스터와 프로세서에 메모리 억세스를 허락하는 신호를 출력함과 아울러 그에 따른 메모리 제어신호를 출력하고, 충돌되면 소정의 알고리즘에 따라 어느 하나의 요청을 니게이트시키도록 제어신호를 출력하고, 억세스가 허락된 디바이스가 메모리를 억세스하기 위한 제어신호를 발생하는 메모리 억세스 제어기(230), 및 개별적으로 억세스 가능한 복수개의 메모리 도듈로 구성되어 프로세서나 버스 마스터중 어느 하나가 억세스하면 메모리 억세스 제어기의 제어신호에 따라 데이터를 저장하거나 출력하게 하는 공유 메모리(250)로 구성된다.The shared memory access control apparatus according to the present invention comprises a bus master 210 having its own address bus AB1 and a data bus DB1, a bus master 210 and another address bus AB2 and a data bus DB2. If a bus request signal is input from the processor 240 having the CPU 240 and the bus master 210, a bus grant signal is output. If a grant ack signal is input, the bus master 210 is output. A specific memory module from the prelook logic 220, the prelook logic 220, or the processor 240, which interprets the upper address AB1 outputted by the controller and outputs the corresponding memory module request signals MEM1 to MEMn. If a request signal is input, it detects whether there is a collision, and if it does not collide, it outputs a signal allowing memory access to the bus master and processor, and outputs a memory control signal accordingly. A memory access controller 230 for outputting a control signal to negate any request according to an algorithm, and generating a control signal for accessing the memory by a device to which the access is allowed, and a plurality of individually accessible memory modules When the processor or bus master is accessed, the shared memory 250 stores or outputs data according to a control signal of the memory access controller.

Description

공유 메모리 억세스 제어장치Shared Memory Access Control

본 발명은 프로세서와 버스 마스터가 메모리를 공유하도록 된 시스템에서 버스마스터와 프로세서가 공유 메모리를 효율적으로 억세스할 수 있도록 하는 공유 메모리 억세스 제어장치에 관한 것이다.The present invention relates to a shared memory access control apparatus for enabling a bus master and a processor to efficiently access shared memory in a system in which a processor and a bus master share memory.

일반적으로 공통버스를 통해 시스템 자원들이 연결된 컴퓨터시스템에서 프로세서나 버스 마스터등이 버스를 사용하기 위해서는 도 1에 도시된 바와 같이, 버스 중재기(16)에 버스 사용을 요청한 후 버스중재기가 허락한 경우에 버스를 사용할 수 있도록 되어 있다.In general, in order to use the bus in a computer system in which system resources are connected through a common bus, as shown in FIG. 1, when the bus arbiter permits the bus arbiter 16 to use the bus, The bus can be used.

즉, 도 1을 참조하면 시스템 버스(14)에 적어도 하나 이상의 프로세서보드(11,12)가 연결되고, 입출력보드(15)와 메모리보드(13) 및 버스중재기(16)가 시스템 버스(11)에 공통 연결된 시스템에서 시스템 버스를 능동적으로 사용할 수 있는 버스 마스터 디바이스는 제1 프로세서보드, 제2 프로세서보드, 입출력보드 등이다.That is, referring to FIG. 1, at least one processor board 11 and 12 is connected to the system bus 14, and the input / output board 15, the memory board 13, and the bus intermediator 16 are connected to the system bus 11. The bus master device capable of actively using the system bus in a system commonly connected to the ()) is a first processor board, a second processor board, an input / output board, and the like.

따라서 프로세서보드나 입출력보드가 시스템 버스를 사용하기 위하여 동시에 시스템 버스를 접근할 경우에 충돌이 발생되므로, 이를 방지하기 위하여 버스 중재기(16)가 버스사용을 중재한다. 즉, 프로세서보드(11,12)나 입출력보드(15)가 시스템 버스(14)를 사용하기 위해서는 버스 중재기(16)에 버스 사용을 요청하면 버스중재기가 소정의 알고리즘에 따라 어느 한 버스 마스터에게 버스 사용을 허락한다. 이어 버스사용이 허락된 버스 마스터는 시스템 버스를 사용하여 데이터를 전달할 수 있다.Therefore, since a collision occurs when the processor board or the input / output board approaches the system bus at the same time to use the system bus, the bus arbiter 16 arbitrates the bus use to prevent this. That is, when the processor boards 11 and 12 or the input / output board 15 request the bus arbiter 16 to use the bus in order to use the system bus 14, the bus intermediator sends a bus arbitrator to one bus master according to a predetermined algorithm. Allow bus use. The bus master is then allowed to transfer data using the system bus.

예컨대, 제1 프로세서(11)가 시스템을 사용하여 메모리보드(13)로부터 데이터를 읽어가는 중에 긴급한 사정으로 입출력보드(15)가 메모리에 데이터를 저장해야 할 필요가 있을 경우, 입출력보드(15)는 버스 중재기에 버스사용을 요구한 후 사용이 허락되면 시스템 버스(14)를 통해 메모리보드(13)에 데이터를 라이트한다. 이때 프로세서보드(11)는 시스템 버스를 사용할 수 없으므로 메모리보드를 접근할 수 없다.For example, when the input / output board 15 needs to store data in the memory due to an urgent situation while the first processor 11 reads data from the memory board 13 using the system, the input / output board 15 After requesting the bus arbiter to use the bus arbiter, the controller writes data to the memory board 13 through the system bus 14 when the use is permitted. In this case, the processor board 11 cannot use the system bus and thus cannot access the memory board.

이와 같이 공유버스를 사용하여 중재에 의해 메모리를 접근하도록 된 시스템에서는 어느 하나의 버스 마스터만이 시스템 버스를 통해 메모리에 접근할 수 있기 때문에 메모리의 사용이 비효율적인 문제점이 있다.As described above, in a system in which a shared bus is used to access memory by arbitration, since only one bus master can access the memory through the system bus, the use of memory is inefficient.

이에 본 발명은 상기와 같은 문제점을 해소하기 위하여 안출된 것으로, 메모리를 개별적으로 억세스할 수 있는 여러개의 모듈로 나눈 후, 프로세서와 다른 버스터들이 동시에 메모리 모듈을 접근할 수 있도록 된 공유 메모리 억세스 제어장치를 제공하는데 그 목적이 있다.Accordingly, the present invention has been made to solve the above problems, and after dividing the memory into a plurality of modules that can be accessed separately, the processor and other busters to access the memory module at the same time, the shared memory access control device The purpose is to provide.

상기와 같은 목적을 달성하기 위하여 본 발명의 장치는, 서로 독립된 어드레스버스 및 데이터 버스를 가지고 공유 메모리에 독립적으로 데이터를 입출력할 수 있는 버스 마스터와 프로세서가 구비된 시스템에 있어서, 상기 버스 마스터로부터 버스요구신호가 입력되면 버스 허락신호를 출력하고, 버스응답신호가 입력되면 버스마스터가 출력하는 상위 어드레스를 해석하여 해당 메모리모듈 요구신호를 출력하는 프리룩로직; 상기 프리룩로직으로부터 혹은 상기 프로세서로부터 특정 메모리모듈을 요구하는 신호가 입력되면 충돌 여부를 검출하여 충돌되지 않으면 상기 버스 마스터와 프로세서에 메모리 억세스를 허락하는 신호를 출력함과 아울러 그에 따른 메모리제어신호를 출력하고, 충돌되면 소정의 알고리즘에 따라 어느 하나의 요청을 니게이트시키도록 제어신호를 출력하고, 억세스가 허락된 디바이스가 메모리를 억세스하기 위한 제어신호를 발생하는 메모리 억세스 제어기; 및 개별적으로 억세스 가능한 복수개의 메모리모듈로 구성되어 프로세서나 버스 마스터중 어느 하나가 억세스하면 메모리 억세스 제어기의 제어신호에 따라 데이터를 저장하거나 출력하게 하는 공유 메모리로 구성된 것을 특징으로 한다.In order to achieve the above object, the apparatus of the present invention is a system having a bus master and a processor capable of inputting and outputting data to and from a shared memory independently having an address bus and a data bus independent from each other, wherein the bus master is a bus. PreLux Logic outputs a bus permission signal when a request signal is input, and outputs a corresponding memory module request signal by analyzing a higher address output by the bus master when a bus response signal is input; When a signal for requesting a specific memory module is input from the prelux logic or from the processor, a collision is detected. If there is no collision, a signal for allowing memory access to the bus master and the processor is output and a memory control signal corresponding thereto is output. A memory access controller which outputs a control signal to negotiate any one request according to a predetermined algorithm when collided, and generates a control signal for accessing the memory by a device to which the access is permitted; And a shared memory configured to store or output data according to a control signal of a memory access controller when any one of a processor or a bus master is accessed by a plurality of individually accessible memory modules.

도 1은 일반적인 컴퓨터시스템에서 버스중재기능을 설명하기 위하여 도시한 도면,1 is a view illustrating a bus arbitration function in a general computer system;

도 2는 본 발명에 따른 공유 메모리 억세스 제어장치를 도시한 도면,2 is a diagram illustrating a shared memory access control apparatus according to the present invention;

도 3은 본 발명에 따른 장치의 동작 타이밍도이다.3 is an operation timing diagram of an apparatus according to the present invention.

*도면의 주요부분에 대한 부호의 설명* Explanation of symbols for main parts of the drawings

210: 버스 마스터 220: 프리룩 로직210: bus master 220: prelook logic

230:메모리 억세스 제어기 240: 프로세서(CPU)230: memory access controller 240: processor (CPU)

250: 공유메모리 M1,M2,Mn: 메모리모듈250: shared memory M1, M2, Mn: memory module

이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 자세히 설명하기로 한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 2는 본 발명에 따른 메모리 억세스 제어장치를 도시한 블록도이고, 도 3은 본 발명에 따른 장치의 동작 타이밍도이다.2 is a block diagram illustrating a memory access control apparatus according to the present invention, and FIG. 3 is an operation timing diagram of the apparatus according to the present invention.

본 발명에 따른 장치는 도 2에 도시된 바와 같이, 독자적인 어드레스 버스(AB1)와 데이터 버스(DB1)를 가진 버스 마스터(210)와, 버스 마스터(210)와 다른 어드레스버스(AB2)와 데이터 버스(DB2)를 갖는 프로세서(240: CPU), 버스 마스터(210)로부터 버스요구(bus req)신호가 입력되면 버스 허락(bus grant)신호를 출력하고, 허락인지(grant ack)신호가 입력되면 버스 마스터(210)가 출력하는 상위 어드레스(AB1)를 해석하여 해당 메모리모듈 요구(MEM1∼MEMn)신호를 출력하는 프리룩 로직(220), 상기 프리룩 로직(220)으로부터 혹은 상기 프로세서(240)로부터 특정 메모리모듈을 요구하는 신호(MEM1 REQ∼MEMn REQ 혹은 PCS1∼PCSn)가 입력되면 충돌 여부를 검출하여 충돌되지 않으면 상기 버스 마스터와 프로세서에 메모리 억세스를 허락하는 신호를 출력함과 아울러 그에 따른 메모리 제어신호(SELn, CSn, WEn, OEn, DIRn)를 출력하고, 충돌되면 소정의 알고리즘에 따라 어느 하나의 요청을 니게이트시키도록 제어신호를 출력하고, 억세스가 허락된 디바이스가 메모리를 억세스하기 위한 제어신호를 발생하는 메모리 억세스 제어기(230), 및 개별적으로 억세스 가능한 복수개의 메모리 도듈로 구성되어 프로세서나 버스 마스터중 어느 하나가 억세스하면 메모리 억세스 제어기의 제어신호에 따라 데이터를 저장하거나 출력하게 하는 공유 메모리(250)로 구성된다.The apparatus according to the present invention has a bus master 210 having its own address bus AB1 and data bus DB1, a bus master 210 and a different address bus AB2 and data bus, as shown in FIG. When a bus request signal is input from the processor 240 (CPU) having a DB2 and the bus master 210, a bus grant signal is output, and when a grant ack signal is input, the bus is output. From the pre-look logic 220, the pre-look logic 220, or from the processor 240, which interprets the upper address AB1 output by the master 210 and outputs the corresponding memory module request (MEM1 to MEMn) signals. If a signal for requesting a specific memory module (MEM1 REQ to MEMn REQ or PCS1 to PCSn) is input, if there is a collision, if there is no collision, a signal for allowing memory access to the bus master and the processor is output and the memory control accordingly God Outputs (SELn, CSn, WEn, OEn, DIRn), outputs a control signal to negate any request according to a predetermined algorithm when a collision occurs, and a control signal for accessing the memory by a device to which the access is allowed A shared memory configured to store and output data according to a control signal of the memory access controller when any one of the processor or the bus master accesses the memory access controller 230 generating a memory and a plurality of individually accessible memory modules. 250).

또한 상기 공유 메모리(250)는 n개의 메모리 모듈(M1∼Mn)로 구성되며, 각 메모리 모듈은 선택신호(SEL1∼SELn)에 따라 버스 마스터의 어드레스 버스(AB1)나 프로세서의 어드레스 버스(AB2)를 메모리모듈로 연결하는 멀티플랙서(251,252,253)와, 칩선택(CS1∼CSn)신호에 따라 활성화되어 라이트(WE1∼WEn)신호에 따라 데이터를 저장하거나 아웃인에이블(OE1∼OEn)신호에 따라 데이터를 출력하는 메모리소자(254,255,256), 및 선택(SEL1∼SELn)신호와 방향(DIR1∼DIRn)신호에 따라 버스 마스터의 데이터 버스(DB1)나 프로세서의 데이터 버스(DB2)를 상기 메모리소자에 연결하는 먹스/디먹스 로직(257,258,259)으로 구성된다.In addition, the shared memory 250 is composed of n memory modules M1 to Mn, and each memory module has an address bus AB1 of a bus master or an address bus AB2 of a processor according to the selection signals SEL1 to SELn. Is activated according to the multiplexers 251, 252 and 253 connecting the memory module to the memory module and the chip select signals CS1 to CSn to store data in accordance with the write signals WE1 to WEn or to the enable signals OE1 to OEn. The data bus DB1 of the bus master or the data bus DB2 of the processor is connected to the memory devices in accordance with the memory devices 254, 255, and 256 for outputting data, and the select (SEL1 to SELn) signals and the direction (DIR1 to DIRn) signals. Is composed of mux / demux logic (257, 258, 259).

이어서, 상기와 같이 구성되는 본 발명의 장치가 동작하는 것을 도 3의 타이밍도를 참조하여 설명한다.Next, the operation of the apparatus of the present invention configured as described above will be described with reference to the timing diagram of FIG. 3.

버스 마스터(210)는 직접 메모리 접근(DMA)기능이 있으므로 버스를 사용하여 메모리에 억세스하기 위해서는 먼저 중재과정을 거친다. 일반적으로 중재과정은 앞서 설명한 바와 같이, 버스 중재기능이 있는 장치(통상, 버스중재기)에 버스요구(bus req)신호로서 버스 사용을 요구하고, 버스 중재기로부터 버스허락(bus grant)신호가 수신되면 허락인지(grant ack)신호를 출력함과 동시에 버스를 사용하여 어드레스 및 데이터를 입출력하는 것으로 이루어진다.Since the bus master 210 has a direct memory access (DMA) function, the bus master 210 undergoes an arbitration process to access a memory using a bus. In general, the arbitration process requires the use of a bus as a bus req signal to a device with a bus arbitration function (typically, a bus arbitrator), and a bus grant signal from the bus arbitrator. When received, it outputs a grant acknowledgment signal and simultaneously inputs and outputs an address and data using a bus.

본 발명에서는 버스 마스터와 프로세서가 서로 독립적인 버스(이중 버스시스템)를 사용하므로 버스 중재과정이 필요없으나 버스 마스터가 제공하는 버스중재신호를 이용하여 메모리요구신호를 만든다.In the present invention, since the bus master and the processor use independent buses (dual bus systems), no bus arbitration process is required, but the memory request signal is made using the bus arbitration signal provided by the bus master.

즉, 프리룩로직(220)은 버스 마스터(210)로부터 버스요구(bus req)신호가 입력되면 바로 버스허락(bus grant)신호를 출력하고, 이어 허락인지(grant ack)신호가 입력되면 버스 마스터(210)가 출력하는 어드레스 버스(AB1)의 상위 어드레스를 래치한 후 디코딩하여 메모리 요구(MEM1 REQ∼MEMn REQ)신호를 메모리 억세스 제어기(230)로 출력한다. 이때 메모리 요구신호는 상위 어드레스에 의해 메모리 공간상에 적당히 분할된 메모리 모듈을 요구하는 신호로서 예컨대, 공유 메모리가 n개의 메모리모듈(M1∼Mn)로 이루어진 경우, 메모리모듈1(M1)부터 메모리모듈n(Mn) 중에서 어느 하나의 메모리모듈을 억세스하기 위하여 요구하는 신호이다.In other words, when the bus req signal is input from the bus master 210, the prelux logic 220 outputs a bus grant signal immediately. Then, when the grant ack signal is input, the bus master The upper address of the address bus AB1 output from the 210 is latched and decoded to output a memory request (MEM1 REQ to MEMn REQ) signal to the memory access controller 230. In this case, the memory request signal is a signal for requesting a memory module appropriately divided in the memory space by an upper address. For example, when the shared memory is composed of n memory modules M1 to Mn, the memory module 1 (M1) to the memory module are used. This signal is required to access any one of the n (Mn) memory modules.

메모리 억세스 제어기(230)는 프리룩로직(220)이나 프로세서(240)로부터 메모리요구(MEM1 REQ∼MEMn REQ 혹은 PCS1∼PCSn)신호를 입력받아 두 요구신호가 충돌하는지(즉, 동일한 메모리모듈을 요구하는지)를 검사하여 충돌하지 않으면 프로세서나 버스 마스터가 동시에 해당 메모리를 억세스할 수 있도록 하고, 충돌하면 소정의 절차에 따라 둘중 어느 하나를 선택한다.The memory access controller 230 receives a memory request signal (MEM1 REQ to MEMn REQ or PCS1 to PCSn) from the lookup logic 220 or the processor 240 to request that the two memory signals collide (ie, request the same memory module). If there is no conflict, the processor or bus master can access the memory at the same time, and if there is a conflict, select either of them according to a predetermined procedure.

이때 버스 마스터가 선택되면 프리로직(220)으로 req ack신호를 활성화시키고, 프로세서(240)가 선택되면 프로세서의 READY신호를 활성화시킨다. 한편, 프리룩로직(220)은 메모리 억세스 제어기(230)로부터 req ack신호가 활성화되지 않으면 버스 마스터로 웨이트(wait)신호를 출력한다.In this case, when the bus master is selected, the req ack signal is activated by the prelogic 220, and when the processor 240 is selected, the READY signal of the processor is activated. Meanwhile, if the req ack signal is not activated from the memory access controller 230, the pre-look logic 220 outputs a wait signal to the bus master.

또한 메모리 억세스 제어기(230)는 버스 마스터(210)가 요구한 메모리 모듈과 프로세서가 요구한 메모리모듈이 충돌하지 않으면, 해당 메모리 모듈들을 인에이블시키고 버스 마스터(210) 혹은 프로세서(240)로부터 제어신호를 입력받아 리드 혹은 라이트동작이 이루어지도록 제어신호를 각각 출력한다.In addition, if the memory module requested by the bus master 210 and the memory module requested by the processor do not collide with each other, the memory access controller 230 enables the corresponding memory modules and controls signals from the bus master 210 or the processor 240. The control signal is outputted so that the read or write operation is performed.

예컨대, 버스 마스터(210)가 메모리 모듈1(M1)을 억세스하여 데이터를 저장하고자 하고, 프로세서(240)가 메모리 모듈n(Mn)을 억세스하여 데이터를 읽어가고자 할 경우에 다음과 같이 동작이 이루어진다.For example, when the bus master 210 accesses the memory module 1 M1 to store data, and the processor 240 accesses the memory module n Mn to read data, the operation is performed as follows. .

1. 버스 마스터가 메모리 모듈1에 데이터를 라이트하는 동작1. The bus master writes data to memory module 1.

버스 마스터(210)는 버스요구(bus req)신호를 출력한 후, 프리룩로직(220)으로부터 버스허락(bus grant)신호가 입력되면 허락인지(grant ack)신호를 출력함과 동시에 메모리모듈을 억세스하기 위한 어드레스를 출력한다. 프리룩로직(220)은 이 어드레스의 상위비트를 해석하여 제 1메모리 모듈 요구(MEM1 REQ)신호를 메모리 억세스 제어기(230)로 출력한다.The bus master 210 outputs a bus req signal and outputs a grant ack signal when a bus grant signal is input from the free look logic 220. Output the address for access. The pre-logic logic 220 interprets the upper bits of this address and outputs a first memory module request (MEM1 REQ) signal to the memory access controller 230.

메모리 억세스 제어기(230)는 버스 마스터(210)의 요구와 프로세서의 요구가 충돌하지 않으므로 제1 메모리모듈(M1)의 선택(SEL1)신호를 하이(혹은 로우)로 하여 멀티플랙서(251)가 버스 마스터의 어드레스버스(AB1)를 메모리소자(254)에 연결하게 하고, 버스 마스터(210)로부터 메모리 라이트(Write) 제어신호를 입력받아 라이트(WE1)신호를 발생하며, 방향(DIR)신호를 하이(혹은 로우)로 하고, 선택(SEL1)신호를 하이로 하여 버스 마스터의 데이터 버스(DB1)를 메모리(254)로 연결하되 그 방향을 데이터 버스로부터 메모리측으로 한다.Since the memory access controller 230 does not conflict with the request of the bus master 210 and the request of the processor, the multiplexer 251 sets the select (SEL1) signal of the first memory module M1 high (or low). The address bus AB1 of the bus master is connected to the memory device 254, the memory write control signal is input from the bus master 210 to generate the write signal WE1, and the direction DIR signal is generated. The high (or low) signal is selected and the select (SEL1) signal is set high to connect the bus master's data bus DB1 to the memory 254, with the direction from the data bus to the memory side.

따라서 버스 마스터가 데이터 버스를 통해 출력하는 데이터가 제 1 메모리모듈(M1)의 해당 어드레스영역에 저장(라이트)된다.Therefore, data output from the bus master through the data bus is stored (written) in the corresponding address area of the first memory module M1.

2. 프로세서가 메모리 모듈 n으로부터 데이터를 리드하는 동작2. The processor reads data from memory module n

프로세서(240)는 메모리모듈n을 요구하는 신호(PCSn)를 메모리 억세스 제어기(230)로 출력하고, 이어서 해당 메모리모듈(Mn)을 억세스하기 위한 어드레스를 출력한다.The processor 240 outputs a signal PCSn requesting the memory module n to the memory access controller 230, and then outputs an address for accessing the memory module Mn.

메모리 억세스 제어기(230)는 프로세서의 요구와 버스 마스터의 요구가 충돌하지 않으므로, 메모리모듈n(Mn)의 선택(SELn)신호를 로우(혹은 하이)로 하여 멀티플랙서(253)가 프로세서의 어드레스버스(AB2)를 메모리소자(256)에 연결하게 하고, 프로세서로부터 메모리 리드 제어신호를 입력받아 아웃인에이블(OEn)신호를 발생하며, 방향(DIR)신호를 로우(혹은 하이)로 하고, 선택신호를 로우로 하여 프로세서의 데이터 버스(DB2)를 메모리소자(256)로 연결하되 그 방향을 메모리측으로부터 데이터 버스측으로 한다. 따라서 프로세서가 출력하는 어드레스 영역에 저장된 데이터를 리드할 수 있다.Since the memory access controller 230 does not collide with the request of the processor and the request of the bus master, the multiplexer 253 sets the address of the processor by setting the select (SELn) signal of the memory module n (Mn) low (or high). The bus AB2 is connected to the memory device 256, the memory read control signal is input from the processor to generate an out enable signal, the DIR signal is set low (or high), and the selection is made. With the signal low, the data bus DB2 of the processor is coupled to the memory element 256, with the direction from the memory side to the data bus side. Therefore, data stored in the address area output by the processor can be read.

한편, 프로세서(240)와 버스 마스터(210)가 억세스하고자 하는 메모리모듈이 충돌하는 경우에는 메모리 억세스 제어기(230)가 선택한 프로세서나 버스 마스터가 해당 메모리모듈을 억세스할 수 있도록 제어신호를 발생하고, 선택되지 않은 버스마스터나 프로세서는 대기토록 제어신호를 출력한다.On the other hand, when the memory module to be accessed by the processor 240 and the bus master 210 collide with each other, a control signal is generated so that the processor or bus master selected by the memory access controller 230 can access the corresponding memory module, The unselected busmaster or processor outputs a control signal for standby.

도 3을 참조하면 (a)는 시스템 클럭(SYS CLK)을 나타내고, (b)는 버스 마스터의 버스 요구신호(BUS REQ)를 나타내고, (c)는 버스 마스터의 버스허락(BUS GRANT)신호를 나타내며, (d)는 허락인지(GRANT ACK)신호를 나타낸다. 또한, (e)는 상위 어드레스를 나타내고 (f)는 하위 오프셋(OFFSET) 어드레스를 나타낸다.Referring to FIG. 3, (a) shows a system clock (SYS CLK), (b) shows a bus request signal (BUS REQ) of a bus master, and (c) shows a bus master signal of a bus master. (D) represents a GRANT ACK signal. In addition, (e) shows an upper address and (f) shows a lower offset (OFFSET) address.

도 3의 (g)는 선택(SELi)신호를 나타내고, (h)는 방향(DIRi)신호를 나타내고, (i)는 웨이트(WAIT)신호를 나타내며, (j)는 프로세서의 메모리요구(PCSi)신호를 나타내고, (k)는 레디(READY)신호를 나타낸다.(G) of FIG. 3 shows a select (SELi) signal, (h) shows a direction (DIRi) signal, (i) shows a weight (WAIT) signal, and (j) shows a memory request (PCSi) of the processor. Signal, and (k) represents a ready signal.

도 3의 (a) 내지 (k)에 있어서, 버스 마스터(210)로부터 버스요구(BUS REQ)신호가 (b)와 같이 하이로 활성화되면, 이에 따라 프리룩로직(220)이 버스허락(BUS GRANT)신호를 로우에서 하이로 전환한다. 버스허락(GRANT ACK)신호가 하이가 되면 버스 마스터(210)는 자신에게 버스사용이 허락된 것을 인지하고, 허락인지(GRANT ACK)신호를 로우에서 하이로 전환함과 아울러 상위 어드레스와 오프셋(OFFSET)어드레스를 구동한다.3 (a) to (k), when the bus request (BUS REQ) signal is activated high from the bus master 210 as shown in (b), the prelux logic 220 accordingly causes the bus permission (BUS). GRANT) signal from low to high. When the bus grant signal becomes high, the bus master 210 recognizes that the bus is permitted to use the bus, and switches the grant acknowledge signal from low to high and the upper address and offset. Drive the address.

그러면 프리룩로직(220)이 상위 어드레스를 해석하여 억세스할 메모리모듈을 메모리 억세스제어기(230)에 요청한다.Then, the lookup logic 220 interprets the upper address and requests the memory access controller 230 for the memory module to be accessed.

한편, 프로세서가 메모리요구신호(PCSi)로 필요한 메모리모듈의 억세스를 메모리 억세스 제어기(230)에 요청하거나 프리룩로직(220)이 메모리모듈의 억세스를 요청하면, 메모리 억세스 제어기(230)는 충돌여부를 검사한 후, 메모리모듈의 선택(SELi)신호와 방향(DIRi)신호를 발생하여 해당 메모리모듈로 출력하고, 충돌이 발생되면 레디(READY)신호로 프로세서의 메모리 억세스를 제한하거나 리퀘스트 억크(req ack)신호를 발생하고, 프리룩로직(220)은 리퀘스트 억크(req ack)신호에 따라 웨이트(WAIT)신호를 발생하여 버스 마스터(210)의 메모리 억세스를 제한한다.On the other hand, when the processor requests the memory access controller 230 to access the memory module required by the memory request signal PCSi, or the free look logic 220 requests access to the memory module, the memory access controller 230 may collide with each other. After checking, generate the select (SELi) signal and the direction (DIRi) signal of the memory module and output them to the corresponding memory module.If a collision occurs, limit the memory access of the processor with the READY signal or request request (req). an ack) signal, and the prelux logic 220 generates a WAIT signal according to the request ack signal to limit the memory access of the bus master 210.

이상에서 살펴본 바와 같이 본 발명에 따른 공유 메모리 억세스 제어장치는 DMA기능을 갖는 버스 마스터나 프로세서가 공통의 메모리를 억세스하고자 할 경우에, 메모리를 개별적으로 억세스 가능하도록 다수의 메모리모듈로 구분한 후 충돌이 없으면 동시에 억세스할 수 있도록 하므로써 공유 메모리를 효율적으로 사용할 수 있도록 하는 효과가 있다.As described above, when the shared memory access control apparatus according to the present invention attempts to access a common memory by a bus master or a processor having a DMA function, the shared memory access control apparatus divides the memory into a plurality of memory modules so that they can be accessed individually, and then crashes. Without this, the shared memory can be accessed at the same time, making the shared memory more efficient.

Claims (2)

서로 독립된 어드레스버스 및 데이터 버스를 가지고 공유 메모리에 독립적으로 데이터를 입출력할 수 있는 버스 마스터와 프로세서가 구비된 시스템에 있어서,In a system having a bus master and a processor having independent address buses and data buses, which can input and output data to and from a shared memory independently, 상기 버스 마스터로부터 버스요구신호가 입력되면 버스 허락신호를 출력하고, 버스응답신호가 입력되면 버스마스터가 출력하는 상위 어드레스를 해석하여 해당 메모리모듈 요구신호를 출력하는 프리룩로직(210);A prelux logic 210 for outputting a bus permission signal when a bus request signal is input from the bus master, and interpreting an upper address output by the bus master when a bus response signal is input; 상기 프리룩로직으로부터 혹은 상기 프로세서로부터 특정 메모리모듈을 요구하는 신호가 입력되면 충돌 여부를 검출하여 충돌되지 않으면 상기 버스 마스터와 프로세서에 메모리 억세스를 허락하는 신호를 출력함과 아울러 그에 따른 메모리제어신호를 출력하고, 충돌되면 소정의 알고리즘에 따라 어느 하나의 요청을 니게이트시키도록 제어신호를 출력하고, 억세스가 허락된 디바이스가 메모리를 억세스하기 위한 제어신호를 발생하는 메모리 억세스 제어기(220); 및When a signal for requesting a specific memory module is input from the prelux logic or from the processor, a collision is detected. If there is no collision, a signal for allowing memory access to the bus master and the processor is output and a memory control signal corresponding thereto is output. A memory access controller 220 which outputs a control signal to negotiate any one request according to a predetermined algorithm when a collision occurs, and generates a control signal for accessing the memory by a device to which the access is permitted; And 개별적으로 억세스 가능한 복수개의 메모리모듈로 구성되어 프로세서나 버스 마스터중 어느 하나가 억세스하면 메모리 억세스 제어기의 제어신호에 따라 데이터를 저장하거나 출력하게 하는 공유 메모리(230)로 구성된 공유 메모리 억세스 제어장치.Shared memory access control device consisting of a shared memory (230) configured to store or output data according to the control signal of the memory access controller when any one of the processor or the bus master is accessed by a plurality of individually accessible memory modules. 제 1 항에 있어서, 상기 공유메모리의 메모리 모듈은 선택신호(SEL1∼SELn)에 따라 버스 마스터의 어드레스 버스(AB1)나 프로세서의 어드레스 버스(AB2)를 메모리모듈로 연결하는 멀티플랙서(251,252,253)와, 칩선택(CS1∼CSn)신호에 따라 활성화되어 라이트(WE1∼WEn)신호에 따라 데이터를 저장하거나 아웃인에이블(OE1∼OEn)신호에 따라 데이터를 출력하는 메모리소자(254,255,256), 및 선택신호와 방향신호에 따라 버스마스터의 데이터버스나 프로세서의 데이터버스를 상기 메모리소자에 연결하는 먹스/디먹스 로직(257,258,259)으로 구성되는 공유 메모리 억세스 제어장치.The memory module of claim 1, wherein the memory module of the shared memory is configured to connect the address bus AB1 of the bus master or the address bus AB2 of the processor to the memory modules according to selection signals SEL1 to SELn. And memory elements 254, 255, and 256 which are activated according to the chip select signals CS1 to CSn and store data according to the write signals WE1 to WEn or output data according to the out enable signals OE1 to OEn. And a mux / demux logic (257, 258, 259) for connecting a bus master data bus or a processor data bus to the memory device according to a signal and a direction signal.
KR1019960057193A 1996-11-25 1996-11-25 An apparatus for controlling access of memory in dual bus system KR100210404B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019960057193A KR100210404B1 (en) 1996-11-25 1996-11-25 An apparatus for controlling access of memory in dual bus system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019960057193A KR100210404B1 (en) 1996-11-25 1996-11-25 An apparatus for controlling access of memory in dual bus system

Publications (2)

Publication Number Publication Date
KR19980038311A KR19980038311A (en) 1998-08-05
KR100210404B1 true KR100210404B1 (en) 1999-07-15

Family

ID=19483451

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960057193A KR100210404B1 (en) 1996-11-25 1996-11-25 An apparatus for controlling access of memory in dual bus system

Country Status (1)

Country Link
KR (1) KR100210404B1 (en)

Also Published As

Publication number Publication date
KR19980038311A (en) 1998-08-05

Similar Documents

Publication Publication Date Title
EP0972251B1 (en) A method and apparatus for providing concurrent acces by a plurality of agents to a shared memory
US5396602A (en) Arbitration logic for multiple bus computer system
KR970000842B1 (en) System direct memory access(dma)support logic for pci based computer system
US7873775B2 (en) Multiple processor system and method including multiple memory hub modules
US5613075A (en) Method and apparatus for providing deterministic read access to main memory in a computer system
JP5237351B2 (en) Switch matrix system with multiple bus arbitrations per cycle via higher frequency arbiters
US5717873A (en) Deadlock avoidance mechanism and method for multiple bus topology
JPH028948A (en) Method and apparatus for controlling access to resource for computer apparatus
EP0492817A2 (en) Data processing system and memory controller for lock semaphore operations
US6959354B2 (en) Effective bus utilization using multiple bus interface circuits and arbitration logic circuit
US5748203A (en) Computer system architecture that incorporates display memory into system memory
US6360305B1 (en) Method and apparatus for optimizing memory performance with opportunistic pre-charging
US7062588B2 (en) Data processing device accessing a memory in response to a request made by an external bus master
US7310717B2 (en) Data transfer control unit with selectable transfer unit size
KR100210404B1 (en) An apparatus for controlling access of memory in dual bus system
JPH0793274A (en) System and device for transferring data
US6370593B1 (en) Apparatus for multiplexing bus interfaces on a computer expansion
US20060248247A1 (en) Apparatus and method for controlling access to a memory
US6862640B2 (en) Arbitration in local system for access to memory in a distant subsystem
US6009482A (en) Method and apparatus for enabling cache streaming
KR100441996B1 (en) Direct Memory Access(DMA) Controller and control method
US20040034748A1 (en) Memory device containing arbiter performing arbitration for bus access right
KR100487218B1 (en) Apparatus and method for interfacing an on-chip bus
JPH0973429A (en) Computer system and inter-bus control circuit
US5799160A (en) Circuit and method for controlling bus arbitration

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: 20030424

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee