KR19980059782A - 프로세서의 메모리 다중 액세스 회로 - Google Patents

프로세서의 메모리 다중 액세스 회로 Download PDF

Info

Publication number
KR19980059782A
KR19980059782A KR1019960079127A KR19960079127A KR19980059782A KR 19980059782 A KR19980059782 A KR 19980059782A KR 1019960079127 A KR1019960079127 A KR 1019960079127A KR 19960079127 A KR19960079127 A KR 19960079127A KR 19980059782 A KR19980059782 A KR 19980059782A
Authority
KR
South Korea
Prior art keywords
signal
gate
data
pending
output
Prior art date
Application number
KR1019960079127A
Other languages
English (en)
Other versions
KR100214644B1 (ko
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 KR1019960079127A priority Critical patent/KR100214644B1/ko
Priority to US09/001,475 priority patent/US6237071B1/en
Publication of KR19980059782A publication Critical patent/KR19980059782A/ko
Application granted granted Critical
Publication of KR100214644B1 publication Critical patent/KR100214644B1/ko

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
    • 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
    • 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/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • G06F13/1615Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement using a concurrent pipeline structrure
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Advance Control (AREA)
  • Bus Control (AREA)

Abstract

본 발명은 프로세서의 메모리 다중 액세스 회로에 관한 것으로 특히, 프로세서가 파이프 라인의 한 단계에서 내부 메모리를 다중 액세스할 경우 이를 중재하고 메모리로부터 데이타가 준비될 때까지 파이프 라인을 일시 정지시킴으로써 원활한 프로세싱이 가능하도록 창안한 것이다. 이러한 본 발명은 데이타를 저장하는 램(RAM)(160)과, 이 램(160)에서 명령을 읽어 파이프 라인 단계로 명령을 실행하고 상기 램(160)을 액세스하기 위한 제어 신호(pctl, dctl, pmwr, pmrd, dmwr, dmrd)를 출력하는 서브 프로세서(100)와, 이 서브 프로세서(100)의 제어 신호(pctl, dctl, pmwr, pmrd, dmwr, dmrd)를 논리 연산하여 상기 램(160)을 액세스하기 위한 제어 신호(csb, web, oe), 어드레스(addr) 및 데이타(data)를 출력하고 상기 램(160)의 다중 액세스를 판단하면 대기 신호(wait)를 액티브시키는 메모리 액세스 중재 블럭(200)과, 이 메모리 액세스 중재 블럭(200)에서 대기 신호(wait)가 액티브되면 상기 서브 프로세서(100)에 명령의 입력을 차단하는 입력 차단부(202)와, 상기 메모리 액서스 중재 블럭(200)에서 대기 신호(wait)가 액티브되면 상기 서브 프로세서(100)의 제어 신호(pctl, dctl, pmwr, pmrd, dmwr, dmrd)가 상기 메모리 액세스 중재 블럭(200)으로 입력되는 것을 차단하는 멀티플랙서(201)로 구성한다.

Description

프로세서의 메모리 다중 액세스 회로
본 발명은 메모리액세스에 관한 것으로 특히, 메모리의 다중 액세스시 파이프 라인을 일시 정지시키도록 한 프로세서의 메모리 다중 액세스 회로에 관한 것이다.
도 1은 종래의 메모리 액세스 회로의 블럭도로서 이에 도시된 바와 같이, 매 싸이클마다 프로그램 어드레스를 생성하는 프로그램 카운트 블럭(130)과, 이 프로그램 카운트 블럭(130)의 프로그램 어드레스에 해당하는 프로그램을 출력하는 롬(150)과, 데이타를 저장하는 램(160)과, 상기 프로그램 카운트 블럭(130)의 프로그램 어드레스를 입력으로 상기 램(160)의 해당 데이타를 액세스하는 메모리 액세스 블럭(140)과, 상기 롬(150)의 프로그램으로 상기 메모리 액세스 블럭(140)에서 액세스한 데이타를 연산 처리하는 산술 연산 블럭(120)과, 명령을 복호하여 상기 산술 연산 블럭(120), 프로그램 카운트 블럭(130) 및 메모리 액세스 블럭(140)에 출력하는 명령 복호 블럭(110)으로 구성된다.
이와같은 종래 회로의 동작 과정을 설명하면 다음과 같다.
일반적으로 프로세서의 4단계 파이프 라인은 명령 실행동안 발생하는 버스 운영(operation)의 일련의 과정으로 명령 페치-복호-피연산자(operand) 페치-실행의 4단계로 이루어지며 상호 충돌없이 동작하도록 독립적으로 구성된다.
이러한 동작은 도 2의 타이밍도와 도 3의 파이프 라인 동작 개념도를 참조하여 설명하면 다음과 같다.
리셋후 도 2 (a)와 같은 클럭(clk)의 매 싸이클마다 프로그램 카운트 블럭(130)에서 프로그램 어드레스(pfc)가 생성되고 롬(150)으로부터 상기 프로그램 어드레스(pfc)에 해당하는 프로그램 데이타를 읽는다. (도 2 (a)의 t1 구간으로 도 3 (a)의 명령 페치 단계)
그 다음 싸이클(도 2 (a)의 t2 구간)에서 명령 복호 블럭(110)은 페치된 명령(instl)을 복호하며 동시에 롬(150)으로부터 다음 명령(inst2)를 페치하게 된다.
다음 싸이클(도 2 (a)의 t3 구간)에서 명령 복호 블럭(110)은 명령(inst1)에 대하여 피연산자 페치를 위한 제어 신호를 발생시키고 동시에 명령(inst2)를 복함함과 동시에 그 다음 명령(inst3)을 롬(15)으로부터 읽어 들인다.
다음 싸이클(도 2 (a)의 t4 구간)에서 산술 연산 블럭(120)은 명령(inst1)에 의한 제어 신호를 입력으로 실행하고 명령 복호 블럭(110)은 명령(inst2)에 의한 제어 신호를 발생시킴과 동시에 명령(inst3)을 복호하며 롬(150)으로부터 새로운 명령(inst4)을 읽어 들인다.
이러한 동작은 파이프 라인의 각 단계가 서로 독립적이므로 충돌없이 반복적으로 수행하게 된다.
그러나, 이러한 종래의 기술은 메모리의 다중 액세스시 중재 회로가 없으므로 충돌이 발생하는 경우 오동작하는 문제점이 있다.
본 발명은 종래 기술의 단점을 개선하기 위하여 프로세서가 파이프 라인의 한 단계에서 내부 메모리를 다중 액세스할 경우 이를 중재하고 메모리로부터 데이타가 준비될 때까지 파이프 라인을 일시 정지시킴으로써 원활한 프로세싱이 가능하도록 창안한 프로세서의 메모리 액세스 회로를 제공함에 목적이 있다.
도 1은 일반적인 프로세서의 블럭도.
도 2는 도 1에서의 타이밍도.
도 3은 도 1에서의 동작 예시도.
도 4는 본 발명에 따른 개념 블럭도.
도 5는 본 발명의 실시예를 보인 블럭도.
도 6은 도 4 및 도 5에서 메모리 액세스 중재 블럭의 구성 블럭도.
도 7은 도 6의 회로도.
도 8은 도 6 및 도 7에서 메모리 다중 액세스시의 타이밍도.
도 9은 본 발명에서 파이프 라인 정지를 보인 타이밍도.
도면의 주요 부분에 대한 부호의 설명
100 : 서브 프로세서 200 : 메모리 액세스 중재블럭
210 : 요구신호 생성부 220 : 펜딩신호 생성부
230 : 대기신호 생성부 240 : 요구신호 실행부
250 : 제어신호 생성부
본 발명은 상기의 목적을 달성하기 위하여 데이타를 저장하는 메모리 수단과, 메모리 수단에서 명령을 읽어 파이프 라인 단계로 명령을 실행하고 상기 메모리 수단이 프로그램용인지 또는 데이타용인지를 구별하기 위한 신호와 프로그램/데이타를 리드, 라이트하기 위한 제어 신호를 출력하는 서브 프로세서 수단과, 이 서브 프로세서의 수단의 제어 신호를 논리 연산하여 상기 메모리 수단을 액세스하기 위한 제어 신호, 어드레스 및 데이타를 출력하고 상기 메모리 수단의 다중 액세스를 판단하면 대기 신호를 액티브시키는 메모리 액세스 중재 수단과, 이 메모리 액세스 중재 수단에서 대기 신호가 액티브되면 상기 서브 프로세서 수단에 명령의 입력을 차단하는 제1 입력 차단 수단과, 상기 메모리 액세스 중재 수단에서 대기 신호가 액티브되면 상기 서브 프로세서 수단의 제어 신호가 상기 메모리 액세스 중재 수단으로 입력되는 것을 차단하는 제2 입력 차단 수단으로 구성한다.
상기 메모리 액세스 중재 수단은 서브 프로세서 수단의 제어 신호(pctl, dctl)가 하이일 때 프로그램 또는 데이타를 리드/라이트하기 위한 제어 신호(pmwr, pmrd, dmwr, dmrd)가 하이가 되면 논리 연산하여 요구 신호(pwrrq, prdrq, dwrrq, drdrq)를 생성하는 요구신호 생성부와, 이 요구신호 생성부의 출력 신호(pwrrq, dwrrq)를 논리합하여 라이트 요구신호(wrrq)를 생성하는 제1 오아 게이트와, 이 제1 오아 게이트의 출력 신호(wrrq) 및 상기 요구신호 생성부의 출력 신호(pwrrq, prdrq, dwrrq, drdrq)를 논리 연산하여 클럭(clk)에 의해 펜딩 신호(prdpn, drdpn)를 생성하는 펜딩신호 생성부와, 이 펜딩신호 생성부의 출력 신호(prdpn, drdpn)를 논리합하여 펜딩 신호(pn)를 생성하는 제2 오아 게이트와, 상기 펜딩신호 생성부의 출력 신호(prdpn, drdpn)와 상기 요구 신호 생성부의 출력 신호(pwrrq, prdrq, dwrrq, drdrq)를 논리 조합하여 프로그램 및 데이타 리드/라이트를 위한 신호(pwr, dwr, prd, drd)를 생성하는 요구신호 실행부와, 이 요구신호 실행부의 출력 신호(pwr, dwr, prd, drd)를 논리 조합하여 메모리 액세스를 위한 신호(csb, web, oe)를 생성함과 아울러 어드레스(raddr, waddr, pfc) 및 데이타(wd)를 입력으로 어드레스(addr)와 데이타(data)를 출력하는 제어신호 생성부와, 서브 프로세서 수단의 데이타(pmrddata), 상기 요구신호 생성부의 출력 신호(pwrrq, prdrq, dwrrq, drdrq) 및 상기 펜딩신호 생성부의 출력 신호(prdpn, drdpn)를 논리 조합하여 상기 제2 오아 게이트의 출력 신호(pn)에 따라 대기 신호(pwait)(dwait)를 생성하는 대기신호 생성부와, 이 대기신호 생성부의 출력 신호(pwait)(dwait)를 논리합하여 대기 신호(wait)를 생성하는 제3 오아 게이트로 구성한다.
이하, 본 발명을 도면에 의거 상세히 설명하면 다음과 같다.
본 발명의 실시예는 도 5의 블럭도에 도시한 바와 같이, 데이타를 저장하는 램(RAM)(160)과, 이 램(160)에서 명령을 읽어 파이프 라인 단계로 명령을 실행하고 상기 램(160)을 액세스하기 위한 제어 신호(pctl, dctl, pmwr, pmrd, dmwr, dmrd)를 출력하는 서브 프로세서(100)와, 이 서브 프로세서(100)의 제어 신호(pctl, dctl, pmwr, pmrd,dmwr, dmrd)를 논리 연산하여 상기 램(106)을 액세스하기 위한 제어 신호(csb, web, oe), 어드레스(addr) 및 데이타(data)를 출력하고 상기 램(160)의 다중 액세스를 판단하면 대기 신호(wait)를 액티브시키는 메모리 액세스 중재 블럭(200)과, 이 메모리 액세스 중재 블럭(200)에서 대기 신호(wait)가 액티브되면 상기 서브 프로세서(100)에 명령의 입력을 차단하는 입력 차단부(202)와, 상기 메모리 액세스 중재 블럭(200)에서 대기 신호(wait)가 액티브되면 상기 서브 프로세서(100)의 제어 신호(pctl, dctl, pmwr, pmrd, dmwr, dmrd)가 상기 메모리 액세스 중재 블럭(200)으로 입력되는 것을 차단하는 멀티플렉서(201)로 구성한다.
상기 멀티플렉서(201)는 대기 신호(wait)가 '0'일 경우 서브 프로세서(100)의 출력 신호(pctl, dctl, pmwr, pmrd, dmwr, dmrd)를 선택하고 '1'인 경우 무신호를 선택하여 메모리 액세스 중재 블럭(200)에 입력시키도록 구성한다.
상기 입력 차단부(202)는 대기 신호(wait)의 반전 신호와 클럭(clk)을 논리곱하는 앤드 게이트(203)와, 이 앤드 게이트(203)의 출력 신호의 상승 에지에서 램(160)의 명령을 래치하여 서브 프로세서(100)에 입력시키는 플립플롭으로 구성한다.
상기 메모리 액세스 중재 블럭(200)은 도 6의 블럭도 및 도 7의 회로도에 도시한 바와 같이, 서브 프로세서(100)의 제어 신호(pctl, dctl)가 하이일 때 프로그램 또는 데이타를 리드/라이트하기 위한 제어 신호(pmwr, pmrd, dmwr, dmrd)가 하이가 되면 논리 연산하여 요구 신호(pwrrq, prdrq, dwrrq, drdrq)를 생성하는 요구신호 생성부(210)와, 이 요구신호 생성부(210)의 출력 신호(pwrrq, dwrrq)를 논리합하여 라이트 요구신호(wrrq)를 생성하는 오아 게이트(260)와, 이 오아 게이트(260)의 출력 신호(wrrq) 및 상기 요구신호 생성부(210)의 출력 신호(pwrrq, prdrq, dwrrq, drdrq)를 논리 연산하여 클럭(clk)에 의해 펜딩 신호(prdpn, drdpn)를 생성하는 펜딩신호 생성부(220)와, 이 펜딩신호 생성부(220)의 출력 신호(prdpn, drdpn)를 논리합하여 펜딩 신호(pn)를 생성하는 오아 게이트(270)와, 상기 펜딩신호 생성부(220)의 출력 신호(prdpn, drdpn)와 상기 요구신호 생성부(210)의 출력 신호(pwrrq, prdrq, dwrrq, drdrq)를 논리 조합하여 프로그램 및 데이타 리드/라이트를 위한 신호(pwr, dwr, prd, drd)를 생성하는 요구신호 실행부(240)와, 이 요구신호 실행부(240)의 출력 신호(pwr, dwr, prd, drd)를 논리 조합하여 메모리 액세스를 위한 신호(csb, web, oe)를 생성함과 아울러 어드레스(raddr, waddr, pfc) 및 데이타(wd)를 입력으로 어드레스(addr)와 데아타(data)를 출력하는 제어신호 생성부(250)와, 서브 프로세서(100)의 데이타(pmrddata), 상기 요구신호 생성부(210)의 출력 신호(pwrrq, prdrq, dwrrq, drdrq) 및 상기 펜eld신호 생성부(220)의 출력 신호(prdpn, drdpn)를 논리 조합하여 상기 오아 게이트(270)의 출력 신호(pn)에 따라 대기 신호(pwait) (dwait)를 생성하는 대기신호 생성부(230)와, 이 대기신호 생성부(230)의 출력 신호(pwait) (dwait)를 논리합하여 대기 신호(wait)를 생성하는 오아 게이트(280)로 구성한다.
상기 요구신호 생성부(210)는 제어 신호(pctl) (pmwr)를 논리합하여 프로그램 라이트 요구신호(pwrrq)를 생성하는 앤드 게이트(301)와, 제어 신호(dctl) (dmwr)를 논리합하여 데이타 라이트 요구신호(dwrrq)를 생성하는 앤드 게이트(302)와, 제어 신호(pctl) (pmrd)를 논리합하여 프로그램 리드 요구신호(prdrq)를 생성하는 앤드 게이트(303)와, 제어신호(dctl) (pmrd)를 논리합하여 데이타 리드 요구신호(drdrq)를 생성하는 앤드 게이트(304)로 구성한다.
상기 펜딩신호 생성부(220)는 요구 신호(wrrq) (drdrq)를 논리합하는 오아 게이트(305)와, 펜딩 신호(pn)의 반전 신호, 프로그램 리드 요구신호(prdrq)와 상기 오아 게이트(305)의 출력 신호를 논리곱하는 앤드 게이트(306)와, 펜딩 신호(drdpn) (prdpn) (pn)를 논리곱하는 앤드 게이트(307)와, 상기 앤드 게이트(306)(307)의 출력 신호를 논리합하는 오아 게이트(308)와, 펜딩 신호(pn), 데이타 리드 요구신호(drdrq) 및 라이트 요구 신호(wrrq)를 논리곱하는 앤드 게이트(309)와, 클럭(clk)에 의해 상기 오아 게이트(308)의 출력 신호를 래치하여 펜딩 신호(prdpn)를 생성하는 플립플롭(310)과, 클럭(clk)에 의해 상기 앤드 게이트(309)의 출력 신호를 래치하여 펜딩 신호(drdpn)를 생성하는 플립플롭(311)으로 구성한다.
상기 대기신호 생성부(230)는 데이타(pmrddata)의 반전 신호와 펜딩 신호(prdpn) (drdpn)를 논리곱하는 앤드 게이트(321)와, 데이타(pmrddata)의 반전 신호와 요구 신호(drdrq) (prdrq)를 논리곱하는 앤드 게이트(322)와, 데이타(pmrddata)의 반전 신호와 요구 신호(prdrq) (wrrq)를 논리곱하는 앤드 게이트(323)와, 상기 앤드 게이트(322) (323)의 출력 신호를 논리합하는 오아 게이트(324)와, 펜딩 신호(drdpn) (drdpn)과 데이타(pmrddata)를 논리곱하는 앤드 게이트(325)와, 요구 신호(prdrq) (drdrq)와 데이타(pmrddata)를 논리곱하는 앤드 게이트(326)와, 요구 신호(prdrq) (wrrq)와 데이타(pmrddata)를 논리곱하는 앤드 게이트(327)와, 요구 신호(drdrq) (wrrq)를 논리곱하는 앤드 게이트(328)와, 상기 앤드 게이트(326~328)의 출력 신호를 논리합하는 오아 게이트(329)와, 펜딩 신호(pn)이 '1'이면 상기 앤드 게이트(321)의 출력 신호를 선택하고 '0'이면 상기 오아 게이트(324)의 출력 신호를 선택하여 대기 신호(pwait)를 생성하는 멀티플렉서(330)와, 펜딩 신호(pn)이 '1'이면 상기 앤드 게이트(325)의 출력 신호를 선택하고 '0'이면 상기 오아 게이트(329)의 출력 신호를 선택하여 대기 신호(dwait)를 생성하는 멀티플렉서(331)로 구성한다.
상기 요구신호 실행부(240)는 프로그램 라이트 요구신호(pwrrq)와 펜딩 신호(pn)를 논리곱하여 프로그램 라이트신호(pwr)를 생성하는 앤드 게이트(312)와, 데이타 라이트 요구신호(dwrrq)와 펜딩 신호(pn)의 반전 신호를 논리곱하여 데이타 라이트 신호(dwr)를 생성하는 앤드 게이트(313)와, 라이트 요구신호(wrrq)와 데이타 리드 요구신호(drdrq)를 노아링하는 노아 게이트(314)와, 이 노아 게이트(314)의 출력 신호, 펜딩 신호(pn)의 반전 신호 및 프로그램 리드 요구신호(prdrq)를 논리곱하는 앤드 게이트(315)와, 펜딩 신호(pn) (prdpn) (drdpn)를 논리곱하는 앤드 게이트(316)와, 상기 앤드 게이트(315) (316)의 출력 신호를 논리합하여 프로그램 리드신호(prd)를 생성하는 오아 게이트(317)와, 펜딩 신호(pn) (drdpn)를 논리곱하는 앤드 게이트(318)와, 펜딩 신호(pn), 라이트 요구신호(wrrq)의 반전 신호 및 데이타 리드 요구신호(drdrq)를 논리곱하는 앤드 게이트(319)와, 상기 앤드 게이트(318) (319)의 출력 신호를 논리합하여 데이타 리드신호(drd)를 생성하는 오아 게이트(320)로 구성한다.
상기 제어신호 생성부(250)는 클럭(clk)의 반전 신호와 프로그램 리드신호(prd)를 논리곱하는 앤드 게이트(332)와, 이 앤드 게이트(332)의 출력 신호에 의해 데이타(d)를 프로그램 버스(pb)로 전송하는 버퍼(333)와, 클럭(clk)의 반전 신호와 데이타 리드신호(drd)를 논리곱하는 앤드 게이트(334)와, 이 앤드 게이트(334)의 출력 신호에 의해 데이타(d)를 데이타 버스(db)로 전송하는 버퍼(335)와, 프로그램 라이트신호(pwr)에 의해 상기 데이타 버스(db)의 값을 데이타(data)로 전송하는 버퍼(345)와, 데이타 라이트신호(dwr)에 의해 라이트 데이타(wd)를 데이타(data)로 전송하는 버퍼(344)와, 프로그램과 데이타의 리드, 라이트 신호(prd, drd, pwr, dwr)를 논리합하는 오아 게이트(336)와, 이 오아 게이트(336)의 출력 신호와 클럭(clk)을 논리곱하는 앤드 게이트(337)와, 이 앤드 게이트(337)의 출력신호와 상기 오아 게이트(336)의 출력 신호의 반전 신호를 논리합하여 제어 신호(csb)를 생성하는 오아 게이트(338)와, 리드 신호(prd) (drd)를 논리합하는 오아 게이트(339)와, 이 오아 게이트(339)의 출력 신호와 클럭(clk)의 반전 신호를 논리곱하여 제어 신호(oe)를 생성하는 앤드 게이트(340)와, 라이트 신호(pwr) (dwr)를 노아링하여 제어 신호(web)를 생성하는 노아 게이트(341)와, 리드 신호(prd)와 라이트 신호(pwr)를 논리합하는 오아 게이트(342)와, 라이트 신호(dwr)와 상기 오아 게이트(342)의 출력 신호에 따라 어드레스(raddr, waddr, pfc)중 하나를 어드레스(addr)로 출력하는 멀티플렉서(343)로 구성한다.
이와같이 구성한 본 발명의 실시예에 대한 동작 및 작용 효과를 설명하면 다음과 같다.
도 4는 본 발명의 개념을 보인 블럭도로서, 메모리 액세스 중재 블럭(200)은 서브 프로세서(100)에서 출력되는 제어 신호(pctl, dctl)에 따라 아래의 표와 같이 램(160)의 동작을 제어하게 된다.
즉, 램(600)은 제어 신호(pctl)가 '1'일 때 프로그램용으로 사용할 수 있음을 나타내고 제어 신호(dctl)가 '1'일 때 데이타용으로 사용할 수 있음을 나타낸다.
만일, 제어신호(pctl) (dctl)이 모두 '1'이라면 파이프 라인의 한단계에서 램(160)으로부터 프로그램을 읽어 들이고 피연산을 위한 데이타를 가져오며 실행에 의한 데이타를 저장하는 동작이 동시에 발생할 수 있다.
따라서, 상기와 같이 하나의 메모리에 다중 액세스가 발생하였을 경우 메모리 액세스 중재 블럭(200)은 요구된 데이타가 준비될 때까지 파이프 라인을 일시 정지시킴으로써 충돌을 방지하여 원활한 프로세싱을 가능하게 한다.
즉, 도 5의 블럭도에서 보듯이, 메모리 액세스 중재 블럭(200)에서 대기신호(wait)가 하이로 액티브되면 멀티플렉서(201)가 절환되어 명령 복호 블럭(110)의 제어 신호가 산술 연산 블럭(120), 프로그램 카운트 블럭(130), 메모리 액세스 블럭(140) 및 메모리 액세스 중재 블럭(200)에 전송되지 않도록 한다.
또한, 앤드 게이트(203)가 하이인 대기 신호(wait)에 의해 로우 출력 상태를 유지하므로 플립플롭(204)가 오프되어 명령 복호 블럭(110)으로 명령의 입력이 차단된다.
이러한 동작에 의해 다중 액세스시 소정 시간동안 파이프 라인을 정지시켜 충돌을 방지하게 된다.
상기 메모리 액세스 중재 블럭(200)은 도 6의 블럭도 및 도 7의 회로도와 같이 요구신호 생성부(210), 펜딩신호 생성부(220), 요구신호 실행부(240), 대기신호 생성부(230) 및 제어신호 생성부(250)로 구성되어 서브 프로세서(100)의 제어 신호(pctl, dctl, pmwr, pmrd, dmwr,dmrd)를 연산함에 의해 램(160)의 액세스를 수행하며 만일, 다중 액세스가 발생하면 일시 파이프 라인을 중지시킴에 의해 원활한 프로세싱이 가능하도록 한다.
이러한 메모리 액세스 중재 블럭(200)의 동작을 설명하면 다음과 같다.
상기 요구신호 생성부(210)는 제어 신호(pmwr, pmrd, dmwr, dmrd)가 입력되었을 때 사용된 메모리가 프로그램용인가 데이타용인가를 구별하는 신호(pctl, dctl)와 조합하여 그에 대응하는 요구 신호를 발생시킨다.
즉, 요구신호 생성부(210)는 제어 신호(pctl, dctl)가 하이일 때 제어 신호(pmwr, pmrd, dmwr, dmrd)가 하이로 액티브되면 앤드 게이트(301~304)에서 각기 요구 신호(pwrq, prdrq, dwrrq, drdrq)를 각기 발생시키게 된다.
상기에서 우선 순위는 메모리 라이트(dmwr, pmwr) - 데이타 읽기(dmrd) - 프로그램 읽기(pmrd) 순이며 2개의 라이트 신호(dmwr, pmwr)는 동시에 입력되지 않는다.
따라서, 라이트를 위한 요구 신호(pwrrq, dwrrq)는 파이프 라인의 한단계에서 동시에 발생하지 않으므로 오아 게이트(260)에서 논리합하여 라이트 요구 신호(wrrq)를 발생시키게 된다.
한편, 한개의 메모리에 대하여 한 싸이클동안 한번의 라이트와 2번의 리드 동작이 동시에 발생할 수 있고 우선 순위는 라이트 동작이 가장 높기 때문에 2개의 리드 동작은 라이트 동작이 종료될 때까지 펜딩되어질 필요가 있다.
이때, 펜딩신호 생성부(220)는 오아 게이트(305)에서 요구 신호(wrrq) (drdrq)를 논리 합하면 앤드 게이트(306)가 요구 신호(prdrq)와 논리곱하고 앤드 게이트(307)가 펜딩신호(drdpn) (prdpn) (pn)를 논리곱하면 오아 게이트(308)가 상기 앤드 게이트(306)의 출력 신호와 논리합하여 플립플롭(310)의 입력단에 인가하며 앤드 게이트(309)가 요구 신호(drdrq) (wrrq)와 펜딩 신호(pn)를 논리곱하여 플립플롭(311)의 입력단에 인가하게 된다.
따라서, 플립플롭(310) (311)은 클럭(clk)의 상승 에지에서 오아 게이트(308)와 앤드 게이트(309)의 출력 신호를 각기 래치하여 펜딩 신호(prdpn) (drdpn)를 각기 출력하게 된다.
이에 따라, 오아 게이트(270)는 펜딘신호 생성부(220)의 출력 신호(prdpn) (drdpn)를 논리합하여 펜딩 신호(pn)를 발생시키게 된다.
여기서, 펜딩 신호(pn)는 초기 상태이면 '0', 처리되지 않는 요구가 존재하면 '1'이다
이때, 요구신호 실행부(240)는 요구신호 생성부(210)의 출력 신호(pwrrq, prdrq, dwrrq, drdrq)와 펜딩신호 생성부(220)의 출력 신호(prdpn, drdpn)를 입력으로 우선 순위에 따라 그에 대응하는 실행 신호(pwr, dwr,prd, drd)를 발생시키는데, 동시에 메모리의 다중 액세스 요구가 있는 경우 펜딩 신호(prdpn, drdpn)에 의해서 (pwr, dwr) - drd - prd 순으로 실행 신호를 발생시킨다.
즉, 요구신호 실행부(240)는 앤드 게이트(312)가 펜딩 신호(pn)와 요구 신호(pwrrq)를 논리합하여 실행 신호(pwr)를 생성하고 앤드 게이트(313)가 펜딩 신호(pn)와 요구 신호(dwrrq)를 논리합하여 실행 신호(dwr)를 발생시키며 노아 게이트(314)가 라이트 요구신호(wrrq)의 반전 신호와 리드 요구신호(drdrq)를 노아링하면 앤드 게이트(315)가 펜딩 신호(pn)의 반전 신호와 요구 신호(prdrq)와 상기 노아 게이트(314)의 출력 신호를 논리합하고 앤드 게이트(316)가 펜딩 신호(prdpn) (drdpn) (pn)를 논리곱함에 의해 오아 게이트(317)가 상기 앤드 게이트(315) (316)의 출력 신호를 논리합하여 실행 신호(prd)를 발생시킨다.
그리고, 앤드 게이트(318)가 페딩 신호(drdpn)(pn)를 논리곱하고 앤드 게이트(319)가 요구 신호(wrrq)의 반전 신호와, 요구 신호(drdrq)와 펜딩 신호(pn)를 논리곱하면 오아 게이트(320)가 상기 앤드 게이트(318) (319)의 출력 신호를 논리합하여 실행 신호(drd)를 발생시키게 된다.
이에 따라, 제어신호 생성부(250)는 리드 어드레스(raddr), 라인트 어드레스(waddr) 및 프로그램용으로 선택되어졌을 때의 어드레스(pfc), 데이타(wd, db) 버스를 받아 들여 요구신호 실행부(240)의 실행 신호(pwr, dwr, prd, drd)에 의해서 그에 대응하는 어드레스(addr)와 데이타(data)를 입출력하며 아울러 리드/라이트 제어 신호(csb, web, oe)등을 발생시킨다.
즉, 제어신호 생성부(250)는 앤드 게이트(332)가 클럭(clk)에 의해 실행 신호(prd)를 입력시킴에 따라 버퍼(333)가 데이타 버스(d)의 값을 프로그램 버스(pb)로 전송하고 앤드 게이트(334)가 클럭(clk)의 반전 신호에 의해 실행 신호(drd)를 입력시킴에 따라 버퍼(335)가 데이타 버스(d)의 값을 데이타 버스(db)로 전송한다.
그리고, 멀티플렉서(343)는 실행 신호(dwr)가 제어 단자(SO)에 인가되고 실행 신호(pwr) (prd)를 논리합하는 오아 게이트(342)의 출력 신호가 제어 단자(Sl)에 인가됨에 따라 입력단(00) (01) (10, 11)에 인가된 어드레스(raddr) (waddr) (pfc)중 하나를 선택하여 어드레스(addr)로 출력하고 앤드 게이트(340)는 실행 신호(prd) (drd)를 논리합하는 오아 게이트(339)의 출력 신호를 클럭(clk)에 의해 제어 신호(oe)로 출력하며 오아 게이트(341)는 실행 신호(pwr) (dwr)를 논리합하여 제어 신호(web)로 출력한다.
또한, 앤드 게이트(337)가 클럭(clk)에 의해 실행 신호(prd, drd, pwr, dwr)를 논리합하는 오아 게이트(336)의 출력 신호를 전송하면 오아 게이트(338)가 상기 오아 게이트(336)의 출력 신호와 논리합하여 제어 신호(csb)를 발생시키게 된다.
상기와 같은 동작으로 램(160)를 액세스할 때 다중 액세스가 요구되어졌다면 대기신호 생성부(230)는 요구된 데이타가 준비될 때까지 파이프 라인을 일시 정지시킴에 의해 원활한 프로세싱이 진행되도록 대기 신호(wait)를 생성시킨다.
즉, 대기신호 생성부(230)는 앤드 게이트(321)가 데이타(pmrddata)의 반전 신호와 펜딩 신호(prdpn) (drdpn)를 논리곱하여 멀티플렉서(330)의 일측 입력단(1)에 인가하며 앤드 게이트(332)가 요구 신호(drdrq) (prdrq)와 데이타(pmrddata)를 논리곱하고 앤드 게이트(323)가 요구 신호(prdrq) (wrrq)와 데이타(pmrddata)를 논리곱하면 오아 게이트(324)가 상기 앤드 게이트(322) (323)의 출력 신호를 논리합하여 상기 멀티플렉서(330)의 타측 입력단(0)에 인가한다.
그리고, 앤드 게이트(325)는 펜딩 신호(drdpn) (drdpn)과 데이타(pmrddata)를 논리곱하여 멀티플렉서(331)의 일측 입력단(1)에 인가하며 앤드 게이트(326)가 요구 신호(prdrq) (drdrq)와 데이타(pmrddata)를 논리곱하고 앤드 게이트(327)가 요구 신호(prdrq) (wrrq)와 데이타(pmrddata)를 논리곱하며 앤드 게이트(328)가 요구 신호(drdrq) (wrrq)를 논리곱하면 오아 게이트(329)가 상기앤드 게이트(326~328)의 출력신호를 논리합하여 상기 멀티플렉서(331)의 타측 입력단(0)에 인가한다.
이에 따라, 멀티플렉서(330) (331)가 펜딩 신호(pn)에 의해 2개의 입력단중 하나를 선택하여 각기 대기 신호(pwait) (dwait)로 출력하면 오아 게이트(280)가 상기 멀티플렉서(330) (331)의 출력 신호를 논리합하여 대기 신호(wait)를 발생시키게 된다.
상기의 동작을 도 8의 메모리 다중 액세스시의 타이밍도를 참조하여 설명하면 다음과 같다.
먼저, 서브 프로세서(100)에서의 제어 신호(pctl, dctl)가 하이일 때 그 서브 프로세서(100)에서 제어 신호(pmwr, pmrd, dmwr, dmrd)를 하이로 액티브시키면 요구신호 생성부(210)는 앤드 게이트(301~304)에서 각기 요구 신호(pwrrq, prdrq, dwrrq, drdrq)를 각기 하이로 발생시키게 된다.
이때, 우선 순위는 메모리 라이트(dmwr, pmwr) - 데이타 읽기(dmrd) - 프로그램 읽기(pmrd)순이다.
그런데, 파이프 라인의 한단계에서 2개의 라이트 신호(dmwr, pmwr)는 동시에 입력되지 않으므로 오아 게이트(260)에서 논리합하여 라이트 요구신호(wrrq)를 발생시키게 된다.
이때, 요구신호 생성부(210)의 출력 신호(pwrrq, prdrq, dwrrq, drdrq)를 입력받은 펜딩신호 생성부(220)가 논리 조합하여 프로그램과 데이타에 대한 펜딩 신호(prdpn) (drdpn)를 발생시키며, 오아 게이트(270)는 상기 펜딩 신호(prdpn) (drdpn)를 논리합하여 펜딩 신호(pn)를 발생시키게 된다.
상기 펜딩 신호(pn)는 초기 상태('0')인지 또는 처리되지 않은 요구가 존재('1')하는지를 결정한다.
만일, 메모리의 액세스가 없는 초기 상태(pn=0)에서 라이트 요구(dwrrq 또는 pwrrq)가 발생하면 요구신호 실행부(240)에서 라이트 인에이블 실호(pwr, dwr)가 생성되어 제어 신호 생성부(250)의 버퍼(344) (345)가 동작 상태가 됨에 의해 데이타가 라이트되며 이때 멀티플렉서(343)에 의해 어드레스(raddr) (waddr) (pfc)중 하나가 어드레스(addr)로 선택되어 출력된다.
이때, 요구신호 생성부(210)에서 데이타 읽기 요구를 위한 신호(drdrq)가 라이트 요구와 동시에 발생되어도 라이트 요구보다 우선순위가 낮기 때문에 펜딩신호 생성부(220)는 플립플롭(311)에서 데이타 읽기 펜딩을 위한 신호(drdpn)를 발생시켜 라이트 동작이 종료될 때까지 대기하도록 한다.
즉, 앤드 게이트(309)에 펜딩 신호(pn)의 반전 신호가 입력되어 플립플롭(311)의 입력단에 '0'인 신호를 인가하므로 펜딩 신호(drdpn)가 '0' 상태를 유지하고 요구신호 생성부(240)는 상기 '0'인 펜딩 신호(drdpn)가 입력된 앤드 게이트(318)의 출력 신호가 '0'이 되어 제어신호 생성부(250)의 앤드 게이트(334)를 통해 버퍼(335)를 오프 상태로 유지시키게 된다.
그리고, 라이트 요구가 없을 때 데이타 요구가 발생하면 펜딩신호 생성부(220)에서 데이타 리드를 위한 펜딩 신호(drdpn)가 발생되지 않으므로 요구신호 실행부(240)의 앤드 게이트(319)에서 하이인 요구 신호(drd)가 발생되어 제어신호 생성부(250)는 버퍼(335)가 동작함에 의해 램(160)으로부터 데이타를 읽어 들이게 된다.
이때, 램(160)을 인에이블시키기 위한 신호(csb) (oe)는 제어신호 생성부(250)에서 오아 게이트(336) (338) (339) 및 앤드 게이트(337) (340)의 논리 조합에 의해 생성되어진다.
또한, 프로그램 리드 요구가 발생되면 우선 순위가 가장 낮기 때문에 라이트 요구나 데이타 리드 요구가 있는지를 앤드 게이트(306) (307)에서의 논리 조합에 의해 판단하고 라이트 요구 또는 데이타 리드의 요구가 있다면 플립플롭(310)에서 프로그램 리드 펜딩 신호(prdpn)를 발생시키므로 대기하게 된다.
이 후, 우선순위가 높은 요구가 모두 처리되면 요구신호 실행부(240)에서 앤드 게이트(316)와 오아 게이트(317)에 의해 프로그램 리드신호(prd)가 생성되므로 제어신호 생성부(250)에서 앤드 게이트(332)가 클럭(clk)의 반전 신호에 의해 상기 프로그램 리드 신호(prd)를 출력할 때 버퍼(333)가 동작함에 의해 프로그램이 버스에 실리게 된다.
이때, 어드레스(addr)는 데이타 라이트신호(dwr)와 오아 게이트(341)에 인가된 프로그램 리드/라이트 신호(prd, pwr)에 의해 멀티플렉서(343)에서 생성되며 제어신호(csb, web, oe)는 오아 게이트(336) (338) (339), 앤드 게이트(338) (340) 및 노아 게이트(341)에서의 논리 조합에 의해 생성된다.
상기와 같은 동작을 수행하는 중에 램(160)의 다중 액세스가 발생하면 대기신호 생성부(230)에서 대기 신호(pwait) (dwait)를 발생시킴에 의해 오아 게이트(280)가 논리합하여 대기 신호(wait)를 생성시키는데, 상기 대기 신호(pwait) (dwait)는 아래와 같은 프로그램에 의해 생성된다.
if, pending = '0' then
pwait - (wrrq and prd and not pmrddata)
or (drdrq and prdrq and not pnrddata) ;
dwait - (wrq and drdrq)
or (dredrq and prdrq and pmrddata)
or (drdrq and prdrq and pmrddata)
else
pwait - (drdpn and prdpn and not pmrddata)
dwait - (drdpn and prdpn and pmrddata)
상기에서 프로그램 프로그램 리드 데이타(pmrddata)는 프로그램 리드시 데이타가 명령 인가 또는 일반적인 데이타인가를 구별하는데, '0'이면 명령, '1'이면 데이타이다.
한편, 도 8은 프로그램 리드 데이타(pmrddata)가 '0'으로 명령용 프로그램을 리드하여 (pmrd=1) 실행에 따른 데이타를 라이트(dmwr=1)하고 실행할 데이타를 리드(dmrd=1)하는 신호가 동시에 발생한 경우의 타이밍도이다.
여기서, 우선순위는 실행 데이타의 라이트 - 실행할 데이타의 리드 - 명령용 프로그램의 리드순이다.
먼저, 실행 데이타의 라이트는 우선순위가 가장 먼저이므로 펜딩 신호(pn)없이 도 8의 구간(t1)에서 도 8(m)의 데이타가 도 8(t)와 같이 데이타 버스에 실려 도 8(s)와 같은 제어 신호(web)의 상승에지에서 라이트 된다.
이때, 데이타 리드 신호(drd)는 도 8의 구간(t1)에서는 대기하고 구간(t2)에서 도 8(r)과 같이 제어 신호(oe)가 하이일 때 도 8(t)와 같은 버스의 값이 도 8(p)
와 같이 데이타 버스(db)에 실려 처리된다.
그리고, 프로그램 리드신호(prd)는 데이타 라이트/리드(dwr/drd)가 처리될 때까지 2싸이클 대기하였다가 도 8의 구간(t3)에서 도 8(t)와 같은 버스의 값이 도 8(k)와 같이 버스(pb)에 실려 처리된다.
이때, 파이프 라인은 도 8(g) (h)와 같이 대기 신호(dwait, pwait)가 하이인 2싸이클구간동안 정지하고 있다가 구간(t3)에서 모든 데이타가 준비되면 램(160)의
액세스 동작을 재개한다.
이러한 파이프 라인 정지 타이밍은 도 9에 도시한 바와 같다.
상기에서 상세히 설명한 바와 같이 본 발명은 프로세서가 파이프 라인의 한 단계에서 내부 메모리를 다중 액세스할 경우 메모리로부터 모든 데이타가 준비될 때까지 파이프 라인을 일시 정지시킴으로써 원활한 프로세싱이 가능하여 시스템의 성능을 향상시키는 효과가 있다.

Claims (9)

  1. 데이타를 저장하는 메모리 수단과, 메모리 수단에서 명령을 읽어 파이프 라인 단계로 명령을 실행하고 상기 메모리 수단을 액세스하기 위한 제어 신호(pctl, dctl, pmwr, pmrd, dmwr, dmrd)를 출력하는 서브 프로세서 수단과, 이 서브 프로세서 수단의 제어 신호(pctl, dctl, pmwr, pmrd, dmwr, dmrd)를 논리 연산하여 상기 메모리 수단을 액세스하기 위한 제어 신호(csb, web, oe), 어드레스(addr) 및 데이타(data)를 출력하고 상기 메모리 수단의 다중 액세스를 판단하면 대기 신호(wait)를 액티브시키는 메모리 액세스 중재 수단과, 이 메모리 액세스 중재 수단에서 대기 신호(wait)가 액티브되면 상기 서브 프로세서 수단에 명령의 입력을 차단하는 제1 입력 차단 수단과 상기 메모리 액세스 중재 수단에서 대기 신호(wait)가 액티브되면 상기 서브 프로세서 수단의 제어 신호(pctl, dctl, pmwr, pmrd, dmwr, dmrd)가 상기 메모리 액세스 중재 수단으로 입력되는 것을 차단하는 제2 입력 차단 수단으로 구성한 것을 특징으로 하는 프로세서의 메모리 다중 액세스 회로.
  2. 제1항에 있어서, 제1 입력 차단 수단은 대기 신호(wait)의 반전 신호와 클럭(clk)을 논리곱하는 앤드 게이트와, 이 앤드 게이트의 출력 신호의 상승 에지에서 메모리 수단의 명령을 래치하여 서브 프로세서 수단에 입력시키는 플립프롭으로 구성한 것을 특징으로 프로세서의 메모리 다중 액세스 회로.
  3. 제1항에 있어서, 제2 입력 차단 수단은 대기신호(wait)가 '0'일 경우 서브 프로세서 수단의 출력신호(pctl, dctl, pmwr, pmrd, dmwr, dmrd)를 선택하고 '1'인 경우 절환되어 무신호를 입력시키는 멀티플렉서인 것을 특징으로 하는 프로세서의 메모리 다중 액세스 회로.
  4. 제1항에 있어서, 메모리 액세스 중재 수단은 서브 프로세서 수단의 제어 신호(pctl, dctl)가 하이일 때 프로그램 또는 데이타를 리드/라이트하기 위한 제어 신호(pmwr, pmrd, dmwr, dmrd)가 하이가 되면 논리 연산하여 요구 신호(pwrrq, prdrq, dwrrq, drdrq)를 생성하는 요구신호 생성부와, 이 요구신호 생성부의 출력 신호(pwrrq, dwrrq)를 논리합하여 라이트 요구신호(wrrq)를 생성하는 제1 오아 게이트와, 이 제1 오아 게이트의 출력 신호(wrrq) 및 상기 요구신호 생성부의 출력 신호(pwrrq, prdrq, dwrrq, drdrq)를 논리 연산하여 클럭(clk)에 의해 펜딩 신호(prdpn, drdpn)를 생성하는 펜딩신호 생성부와, 이 펜딩신호 생성부의 출력 신호(prdpn, drdpn)를 논리합하여 펜딩 신호(pn)를 생성하는 제2 오아 게이트와, 상기 펜딩신호 생성부의 출력 신호(prdpn, drdpn)와 상기 요구신호 생성부의 출력 신호(pwrrq, prdrq, dwrrq, drdrq)를 논리 조합하여 프로그램 및 데이타 리드/라인트를 위한 신호(pwr, dwr, prd, drd)를 생성하는 요구신호 실행부와, 이 요구신호 실행부의 출력 신호(pwr, dwr, prd, drd)를 논리 조합하여 메모리 액세스를 위한 신호(csb, web, oe)를 생성함과 아울러 어드레스(raddr, waddr, pfc) 및 데이타(wd)를 입력으로 어드레스(addr)와 데이타(data)를 출력하는 제어신호 생성부와, 서브 프로세서 수단의 데이타(pmrddata), 상기 요구신호 생성부의 출력 신호(pwrrq, prdrq, dwrrq, drdrq) 및 상기 펜딩신호 생성부의 출력 신호(prdpn, drdpn)를 논리 조합하여 상기 제2 오아 게이트의 출력 신호(pn)에 따라 대기 신호(pwait) (dwait)를 생성하는 대기신호 생성부와, 이 대기신호 생성부의 출력 신호(wait) (dwait)를 논리합하여 대기 신호(wait)를 생성하는 제3 오아 게이트로 구성한 것을 특징으로 하는 프로세서의 메모리 다중 액세스 회로.
  5. 제4항에 있어서, 요구신호 생성부는 제어 신호(pctl) (pmwr)를 논리합하여 프로그램 라이트 요구신호(pwrrq)를 생성하는 제1 앤드 게이트와, 제어 신호(dctl) (dmwr)를 논리합하여 데이타 요구신호(dwrrq)를 생성하는 제2 앤드 게이트와, 제어 신호(pctl) (pmrd)를 논리합하여 프로그램 리드 요구신호(prdrq)를 생성하는 제3 앤드 게이트와, 제어신호(dctl) (pmrd)를 논리합하여 데어터 리드 요구신호(drdrq)를 생성하는 제4 앤드 게이트로 구성한 것을 특징으로 하는 프로세서의 메모리 다중 액세스 회로.
  6. 제4항에 있어서, 펜딩신호 생성부는 요구 신호(wrrq) (drdrq)를 논리합하는 제1 오아 게이트와, 펜딩 신호(pn)의 반전 신호, 프로그램 리드 요구신호(prdrq)와 상기 오아 게이트의 출력 신호를 논리곱하는 제1 앤드 게이트와, 펜딩 신호(drdpn) (prdpn) (pn)를 논리곱하는 제2 앤드 게이트와, 상기 제1, 제2 앤드 게이트의 출력 신호를 논리합하는 제2 오아 게이트와, 펜딩 신호(pn), 데이타 리드 요구신호(drdrq) 및 라이트 요구신호(wrrq)를 논리곱하는 제3 앤드 게이트와, 클럭(clk)에 의해 상기 제2 오아 게이트의 출력 신호를 래치하여 펜딩 신호(prdpn)를 생성하는 제1 플립플롭과, 클럭(clk)에 의해 상기 제3 앤드 게이트의 출력 신호를 래치하여 펜딩 신호(drdpn)를 생성하는 제2 플립플롭으로 구성한 것을 특징으로 하는 프로세서의 메모리 다중 액세스 회로.
  7. 제4항에 있어서, 요구신호 실행부는 프로그램 라이트 요구신호(pwrrq)와 펜딩 신호(pn)를 논리곱하여 프로그램 라이트신호(pwr)를 생성하는 제1 앤드 게이트와, 데이타 라이트 요구신호(dwrrq)와 펜딩 신호(pn)의 반전 신호를 논리곱하여 데이타 라이트 신호(dwr)를 생성하는 제2 앤드 게이트와, 라이트 요구신호(wrrq)와 데이타 리트 요구신호(drdrq)를 노아링하는 노아 게이트와, 이 노아 게이트의 출력 신호, 펜딩 신호(pn)의 반전 신호 및 프로그램 리드 요구신호(prdrq)를 논리곱하는 제3 앤드 게이트와, 펜딩 신호(pn) (prdpn) (drdpn)를 논리곱하는 제4 앤드 게이트와, 상기 제3, 제4 앤드 게이트의 출력 신호를 논리합하여 프로그램 리드신호(prd)를 생성하는 제1 오아 게이트와, 펜딩 신호(pn) (drdpn)를 논리곱하는 제5 앤드 게이트와, 펜딩 신호(pn), 라이트 요구 신호(wrrq)의 반전 신호 및 데이타 리드 요구신호(drdrq)를 논리곱하는 제6 앤드 게이트와, 상기 제5, 제6 앤드 게이트의 추력 신호를 논리합하여 데이타 리드신호(drd)를 생성하는 제2 오아 게이트로 구성한 것을 특징으로 하는 프로세서의 메모리 다중 액세스 회로.
  8. 제4항에 있어서, 제어신호 생성부는 클럭(clk)의 반전 신호와 프로그램 리드신호(prd)를 논리곱하는 제1 앤드 게이트와, 이 제1 앤드 게이트의 출력 신호에 의해 데이타(d)를 프로그램 버스(pb)로 전송하는 제1 버퍼와, 클럭(clk)의 반전 신호와 데이타 리드신호(drd)를 논리곱하는 제2 앤드 게이트와, 이 제2 앤드 게이트의 출력 신호에 의해 데이타(d)를 데이타 버스(db)로 전송하는 제2 버퍼와, 프로그램 라이트신호(pwr)의 의해 상기 데이타 버스(db)의 값을 데이타(data)로 전송하는 제3 버퍼와, 데이타 라이트 신호(dwr)에 의해 라이트 데이타(wd)를 데이타(data)로 전송하는 제4 버퍼와, 프로그램과 데이타의 리드, 라이트 신호(prd, drd, pwr, dwr)를 논리합하는 제1 오아 게이트와, 이 제1 오아 게이트의 출력 신호와 클럭(clk)을 논리곱하는 제3 앤드 게이트와, 이 제3 앤드 게이트의 출력 신호와 상기 제1 오아 게이트의 출력 신호의 반전 신호를 논리합하여 제어 신호(csb)를 생성하는 제2 오아 게이트와, 리드 신호(prd) (drd)를 논리합하는 제3 오아 게이트와, 이 제3 오아 게이트의 출력 신호와 클럭(clk)의 반전 신호를 논리곱하여 제어 신호(oe)를 생성하는 제4 앤드 게이트와, 라이트 신호(pwr) (dwr)를 노아링하여 제어 신호(wed)를 생성하는 노아 게이트와, 리드 신호(prd)와 라이트 신호(pwr)를 논리합하는 제4 오아 게이트와, 라이트 신호(dwr)와 상기 제4 오아 게이트의 출력 신호에 따라 어드레스(raddr, waddr, pfc)중 하나를 어드레스(addr)로 출력하는 멀티플렉서로 구성한 것을 특징으로 하는 프로세서의 메모리 다중 액세스 회로.
  9. 제4항에 있어서, 대기신호 생성부는 데이타(pmrddata)의 반전 신호와 펜딩 신호(prdpn) (drdpn)를 논리곱하는 제1 앤드 게이트와, 데이타(pmrddata)의 반전 신호와 요구 신호(drdrq) (prdrq)를 논리곱하는 제2 앤드 게이트와, 데이타(pmrddata)의 반전 신호와 요구 신호(prdrq) (wrrq)를 논리곱하는 제3 앤드 게이트와, 상기 제2, 제3 앤드 게이트의 출력 신호를 논리합하는 제1 오아 게이트와, 펜딩 신호(drdpn) (drdpn)과 데이타(pmrddata)를 논리곱하는 제4 앤드 게이트와, 요구 신호(prdrq) (drdrq)와 데이타(pmrddata)를 논리곱하는 제5 앤드 게이트와, 요구 신호(prdrq) (wrrq)와 데이타(pmrddata)를 논리곱하는 제6 앤드 게이트와, 요구 신호(drdrq) (wrrq)를 논리곱하는 제7 앤드 게이트와, 상기 제5~제7 앤드 게이트의 출력 신호를 논리합하는 제2 오아 게이트와, 펜딩 신호(pn)이 '1'이면 상기 제1 앤드 게이트의 출력 신호를 선택하고 '0'이면 상기 제1 오아 게이트의 출력 신호를 선택하여 대기 신호(pwait)를 생성하는 제1 멀티플렉서와, 펜딩 신호(pn)이 '1'이면 상기 제4 앤드 게이트의 출력 신호를 선택하고 '0'이면 상기 제2 오아 게이트의 출력 신호를 선택하여 대기 신호(dwait)를 생성하는 제2 멀티플렉서로 구성한 것을 특징으로 하는 프로세서의 메모리 다중 액세스 회로.
KR1019960079127A 1996-12-31 1996-12-31 프로세서의 메모리 다중 액세스 회로 KR100214644B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1019960079127A KR100214644B1 (ko) 1996-12-31 1996-12-31 프로세서의 메모리 다중 액세스 회로
US09/001,475 US6237071B1 (en) 1996-12-31 1997-12-31 Multiaccess circuit including arbitration capabilities to effectively perform pipeline and suspend operations according to its priority

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019960079127A KR100214644B1 (ko) 1996-12-31 1996-12-31 프로세서의 메모리 다중 액세스 회로

Publications (2)

Publication Number Publication Date
KR19980059782A true KR19980059782A (ko) 1998-10-07
KR100214644B1 KR100214644B1 (ko) 1999-08-02

Family

ID=19493036

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960079127A KR100214644B1 (ko) 1996-12-31 1996-12-31 프로세서의 메모리 다중 액세스 회로

Country Status (2)

Country Link
US (1) US6237071B1 (ko)
KR (1) KR100214644B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9378023B2 (en) * 2012-06-13 2016-06-28 International Business Machines Corporation Cross-pipe serialization for multi-pipeline processor
US9396032B2 (en) * 2014-03-27 2016-07-19 Intel Corporation Priority based context preemption

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5369744A (en) * 1989-10-16 1994-11-29 Hitachi, Ltd. Address-translatable graphic processor, data processor and drawing method with employment of the same
DE69231720T2 (de) * 1991-12-10 2001-06-21 Fujitsu Ltd., Kawasaki Speicherzugriffsvorrichtung mit Adresspipeline
US5276858A (en) * 1991-12-26 1994-01-04 Intel Corporation Memory controller with integrated delay line circuitry
CA2118662C (en) * 1993-03-22 1999-07-13 Paul A. Santeler Memory controller having all dram address and control signals provided synchronously from a single device
US6513125B1 (en) * 1993-04-22 2003-01-28 Analog Devices, Inc. Multi-phase multi-access pipeline memory system in which the pipeline memory can decode addresses issued by one processor while simultaneously accessing memory array by other processor
IT1273339B (it) * 1994-02-24 1997-07-08 Circuit Line Spa Sistema di marcatura di circuiti stampati
US5617559A (en) * 1994-08-31 1997-04-01 Motorola Inc. Modular chip select control circuit and method for performing pipelined memory accesses
US5787489A (en) * 1995-02-21 1998-07-28 Micron Technology, Inc. Synchronous SRAM having pipelined enable
US5737748A (en) * 1995-03-15 1998-04-07 Texas Instruments Incorporated Microprocessor unit having a first level write-through cache memory and a smaller second-level write-back cache memory
KR100237642B1 (ko) * 1996-12-30 2000-01-15 구자홍 파이프라인 정지회로를 구비한 프로세서
JP3840731B2 (ja) * 1997-03-21 2006-11-01 富士通株式会社 半導体集積回路

Also Published As

Publication number Publication date
US6237071B1 (en) 2001-05-22
KR100214644B1 (ko) 1999-08-02

Similar Documents

Publication Publication Date Title
JP3105223B2 (ja) マイクロコンピュータ,マイクロプロセッサおよびコア・プロセッサ集積回路用デバッグ周辺装置
KR100276475B1 (ko) 마이크로 컴퓨터 시스템
US4879646A (en) Data processing system with a pipelined structure for editing trace memory contents and tracing operations during system debugging
US7246052B2 (en) Bus master and bus slave simulation using function manager and thread manager
KR100647526B1 (ko) 태스크 스위칭에 의한 제로 오버헤드 컴퓨터 인터럽트
US20040205747A1 (en) Breakpoint for parallel hardware threads in multithreaded processor
JP2584113B2 (ja) データ転送方法及びデータ転送装置
KR100210205B1 (ko) 스톨캐쉬를 제공하기 위한 장치 및 방법
EP0166431B1 (en) An information processing apparatus having an instruction prefetch circuit
US5619730A (en) Pipelining device in a parallel processing apparatus and an instruction supplying method therefor
US20070260857A1 (en) Electronic Circuit
JPH05342084A (ja) データ記憶装置及びデータ記憶方法
KR100214644B1 (ko) 프로세서의 메모리 다중 액세스 회로
EP0806723A2 (en) Method and apparatus for handling multiple precise events in a pipelined digital processor
US11847461B2 (en) Out-of-order input / output write
JP3520372B2 (ja) メモリ制御ユニット並びに入出力制御ユニットの動作におけるクリティカル・パスの削除
US20230350605A1 (en) Queue Circuit For Controlling Access To A Memory Circuit
JP3461887B2 (ja) 可変長パイプライン制御装置
JPH07114509A (ja) メモリアクセス装置
JP3102399B2 (ja) データ処理装置及び方法
Ayyad et al. Multiprocessor scheme with application to macro-dataflow
JPS6316350A (ja) マイクロプロセッサ
KR910007028B1 (ko) 데이타처리 시스템에서의 파이프라인 처리방법
JP2636074B2 (ja) マイクロプロセッサ
JPH04188324A (ja) 情報処理システム

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

Year of fee payment: 10

LAPS Lapse due to unpaid annual fee