KR930008050B1 - 원칩 마이크로프로세서 및 그 버스시스템 - Google Patents

원칩 마이크로프로세서 및 그 버스시스템 Download PDF

Info

Publication number
KR930008050B1
KR930008050B1 KR1019910002447A KR910002447A KR930008050B1 KR 930008050 B1 KR930008050 B1 KR 930008050B1 KR 1019910002447 A KR1019910002447 A KR 1019910002447A KR 910002447 A KR910002447 A KR 910002447A KR 930008050 B1 KR930008050 B1 KR 930008050B1
Authority
KR
South Korea
Prior art keywords
memory
bus
address
data
access
Prior art date
Application number
KR1019910002447A
Other languages
English (en)
Other versions
KR910015933A (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 가부시끼가이샤 히다찌세이사꾸쇼
Publication of KR910015933A publication Critical patent/KR910015933A/ko
Application granted granted Critical
Publication of KR930008050B1 publication Critical patent/KR930008050B1/ko

Links

Images

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/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/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • G06F12/0879Burst mode

Abstract

내용 없음.

Description

원칩 마이크로프로세서 및 그 버스시스템
제 1 도는 본 발명의 1실시예의 원칩 마이크로프로세서의 블럭도.
제 2 도는 제 1 도의 원칩 마이크로프로세서를 사용한 시스템 구성도.
제 3 도는 제 1 도의 원칩 마이크로프로세서의 버스사이징부의 상세도.
제 4 도는 제 1 도의 원칩 마이크로프로세서의 천이 상태도.
제 5 도는 각각의 액세스 대상에 따른 스테이지 기동의 상태를 나타낸 개념도.
제 6 도는 상기 제 1 도에 사용되는 신호의 타이밍도.
제 7 도는 제 5 도의 각 상태의 시스템내에서의 액세스 상태를 나타낸 개념도.
제 8 도는 로칼메모리액세스시의 타이밍도.
제 9 도 내지 제 16 도는 제 4 도에 나타낸 각 모드에 있어서의 시스템상의 데이타의 흐름을 나타낸 개념도.
본 발명은 정보처리장치에 관한 것으로, 멀티플렉스버스 및 캐시메모리를 갖는 컴퓨터시스템, 특히 원칩 마이크로프로세서 및 그 버스시스템에 관한 것이다.
해당 기슬분야에 있어서의 종래장치는 예를들면 일본국 특허공개공보 소화 62-66350호 등에 개시된 바와같은 방식이 있다.
상기의 종래기술에서 정보처리시스템의 소형화를 도모하는 경우, 프로세서의 버스는 어드레스와 데이타를 다중화(멀티플렉스)하는 것이 불가결하게 되었다.
본 발명의 목적은 멀티플렉스버스를 갖는 프로세서를 갖는 정보처리시스템에서 가장 효율적인 버스시스템 구성을 제공하는 것이다.
본 발명의 다른 목적은 다른 여러개의 기억장치를 갖는 정보처리장치에서 외부주변 디바이스와의 접속이 용이한 원칩 마이크로프로세서를 제공하는 것이다.
상기 목적을 달성하기 위해 본 발명에서는 메인메모리 액세스를 제어하는 메모리콘트롤러 및 캐시메모리를 멀티플렉스버스에 직결시킨 시스템구성으로 한다.
상기 다른 목적을 달성하기 위해 본 발명에서는 액세스하는 어드레스를 디코드해서 액세스하는 디바이스를 판정하고, 그것에 따른 액세스 스테이지의 기동, 제어기호의 출력, 버스의 사이징들을 실행하는 구성으로 한다.
캐시메모리액세스 및 메인메모리액세스시 모두 데이타가 멀티플렉스버스에 직결되어 있어 구동회로를 거치지 않고 전달되므로, 데이타의 확정이 빨라 액세스시간을 단축할 수 있다. 또, 액세스하는 디바이스에 의한 동작을 원칩 마이크로프로세서가 자동적으로 실행하므로, 프로세서의 외부에 접속용의 회로를 부가할 필요가 없으므로, 주변 디바이스와의 접속이 용이하게 된다.
이하, 본 발명의 실시예를 도면에 따라서 설명한다.
제 1 도는 본 발명의 원칩 마이크로프로세서의 블럭도로써, (1)은 원칩 마이크로프로세서(MPU), (2)는 메모리관리유니트, (3)은 명령실행유니트, (4)는 DMA 콘트롤유니트, (5)는 메인메모리콘트롤러, (6)은 버스콘트롤러, (7)은 캐시메모리의 어드레스어레이, (201)은 라이트데이타레지스터, (202)는 논리어드레스레지스터, (200)은 리드데이타레지스터, (203)은 DMA 어드레스레지스트, (204)는 어드레스변환용 버퍼 1(TLB1), (205)는 어드레스 변환용 버퍼 0(TLB0), (206)은 TLB용 태그, (207)은 모드디코더, (208)은 라이트데이타사이징부, (209)는 콘트롤레지스트군, (210), (211)은 가산기(ADDER), (212)는 캐시메모리 히트판정기, (213)은 세그먼트테이블엔트리레지스터, (214)는 TLB 히트판정기, (215)는 캐시메모리의 어드레스어레이 제어부, (216)은 패리티제너레이터, (217)은 패리터체커, (218)은 기억보호회로, (219)는 리드데이타래치, (220)은 리드데이타용 사이징부, (221)은 기억보호에러처리부, (222)는 버스제어부, (223)은 어드레스 변환제어부, (224)는 버스조정부, (225)는 라이트데이타, (226)은 논리어드레스, (227)은 DMA 어드레스, (228)은 메모리액세스 기동신호, (230)은 TLB1 데이타, (231)은 TLB0 데이타, (232)는 테그데이타, (234)는 리드데이타버스, (235)는 멀티플렉스버스의 입력데이타, (236)은 멀티플렉스버스의 출력패스, (237)은 사이징후의 라이트데이타, (239)는 콘트롤레지스트의 출력, (240)은 캐시메모리히트신호, (241)은 TLB 히트신호, (242)는 세그먼트테이블레지스트출력, (243) 내지 (248)은 셀렉터, (249)는 어드레스어레이데이타, (250)은 어드레스어레이 제어신호, (251)은 멀티플렉스버스, (252)는 메모리액세스제어신호, (253)은 버스해방신호(BUSACK), (254)는 버스해방요구신호이다.
또, 이 MPU를 사용한 본 실시예의 시스템 구성도를 제 2 도에 도시한다. 제 2 도중의 (8)은 캐시메모리, (9)는 입출력장치(I/O), (10)은 로칼메모리, (11)은 어드레스용 래치, (12)는 데이타방향 제어용 구동회로, (13)은 캐시메모리, 어드레스어레이용 어드레스래치, (14)는 어드레스버스 패스용 구동회로, (16)은 어드레스버스, (17)은 데이타버스, (18)은 I/O, 로칼메모리전용 액세스 제어신호, (19)는 주기억장치이다. 멀티플렉스버스(251)에 캐시메모리(8), 메모리콘트롤러(5)를 직결한 시스템 구성으로 한다, 이 구성에 의해, 캐시메모리액세스 및 메인메모리액세스 모두 데이타가 멀티플렉스버스에 직결되어 있어 구동회로를 거치지 않고 전달되므로, 데이타의 확장이 빨라 액세스시간을 단축할 수 있다. 이 제 2 도의 시스템의 동작에 대해서는 다음에 상세히 기술한다.
제 3 도는 본 실시예 MPU1의 라이트데이타사이징부(208)과 리드데이타사이징부(220)을 중심으로 하는 버스사이징부분을 상세하게 나타낸 블럭도로써, (99)는 메모리 액세스 지정부, (100) 내지 (103)은 데이타래치, (104)는 양방향 버퍼, (105)는 메모리액세스를 실행하는 물리어드레스의 디코더, (106)은 바이트단위의 매모리액세스지정패턴 변환부, (107)은 메모리액세스스테이지 제어부, (108)은 물리어드레스 생성부, (143) 내지 (146)은 32비트폭의 멀티플렉스버스에 있어서의 상위측에서 각각의 4바이트, (109) 내지 (112)는 멀티플렉스버스의 4바이트(143∼146)에 대응하는 바이트단위의 입력데이타, (135) 내지 (138)은 라이트데이타레지스트의 상위측에서 각각 바이트단위의 버스, (123) 내지 (134) 및 (139)는 셀렉터, (118)은 메모리 액세스 기동신호, (119)는 메모리액세스 종료보고신호, (120)은 액세스모드지정신호, (117)은 바이트마다의 액세스패턴 지정신호, (153) 내지 (156)은 데이타방향 제어용 구동회로, (147) 내지 (150)은 멀티플렉스버스의 4바이트(143∼146)에 대응하는 데이타버스, (151)은 바이트단위의 메모리 액세스지정패턴, (113) 내지 (116)은 데이타래치(100) 내지 (103)의 출력이다.
그런데, 제 1 도에서, MPU1이 메모리액세스를 실행하는 경우, 논리어드레스레지스터(202)에 논리어드레스를 설정하고, 라이트액세스라면 라이트데이타레지스터(201)에 데이타를 세트한다.
라이트모드/리드모드의 지정은 버스제어부(222)에서 버스콘트롤러(6) 및 메인메모리콘트롤러(5)에 출력되는 메모리 액세스 제어신호(252)에서 지정된다. 다음에 메모리액세스 기동신호(228)에 의해 기동을 건다. 여기에서 모드디코더(207)이 논리어드레스(226)을 봐서 어느곳의 영역에 대한 액세스인가를 판정한다. 논리어드레스(226)이 가상공간인 경우는 TLB 히트판정기(CMP)(214)에 의해 TLB(204), (205)중 어느쪽이 히트하는가 어떤가 판정한다. 히트한 경우, TLB(204) 또는 (205)가 히트한쪽의 데이타를 셀렉터(248)을 통해서 물리어드레스로 하고, 멀티플렉스버스(251)에 출력해서 액세스를 실행한다. 양쪽의 TLB가 미스히트한 경우는 어드레스 변환제어부(223)이 버스제어부(222)에 작용해서 2레벨의 페이징(세그먼트테이블, 페이지테이블)에 의한 어드레스 변환제어를 개시한다. 이때, 가산기(210)(211)에 의해 각각 세그먼트테이블어드레스, 페이지테이블어드레스를 생성한다. 어드레스 변환후 또는 실제의 공간액세스에서 물리어드레스가 메인메모리인 경우, 멀티플렉스버스(251)을 통과한 물리어드레스에 의한 어드레스어레이데이타(249)와 물리어드레스의 일부를 캐시메모리히트판정기(212)로 비교하여 캐시히트판정을 실행한다. 캐시가 히트한 경우는 리드시에 데이타를 멀티플렉스버스(251)에서 리드데이타버스(234)를 거쳐서 리드데이타레지스터(200)에 입력한다. 리드시, 캐시가 미스히트한 경우, 메모리액세스 제어신호(252)를 거쳐서 메인메모리 콘트롤러(5)에 캐시의 블럭 교체의 요구를 발생하여 메인메모리콘트롤러(5)가 그것을 실행한다. 이때, 어드레스어레이의 갱신은 어드레스어레이 제어부에서 나오는 어드레스어레이 제어신호(250) 및 어드레스어레이 데이타(249)로 실행한다. 라이트모드에서 히트한 경우는 어드레스어레이 제어신호(250) 및 어드레스어레이데이타(249)에 의해 그 엔트리의 무효화를 실행한다.
데이타 및 어드레스의 패리티제너레이트 및 체크는 패리티제너레이터(PG)(216) 및 패리티체커(PCHK)(217)에서 실행한다. 또, 기억보호를 위한 어드레스감시 및 그것에 의한 에러발생시의 처리는 기억보호회로(218) 및 기억보호에러처리부(221)에서 실행한다.
이하, 제 1 도의 원칩 마이크로프로세서(1)내에서의 주된 신호의 흐름에 대해서 개략적으로 설명했지만, 제 4 도의 상매천이도에 따라서 각각의 액세스행선지마다의 조건마다 상세하게 설명한다. 이 제 5 도중에서 각 천이상태는 다음과 같은 상태를 나타내고 있다.
① : 아이들상태
② : 버스콘트롤러(6), 메모리콘트롤러(5)의 콘트롤레지스터에 대한 다이렉트 액세스
③ : 로칼메모리, I/O에 대한 액세스
④, ⑤ : 모드디코더(207)에서 가상공간 액세스 또는 실제 공간액세스중 어느것이라고 판정
⑥, ⑦ : TLB의 히트, 미스히트 판정
⑧, ⑨ : 어드레스변환의 세그먼트테이블리드
⑩, ⑪ : 어드레스 변환중의 페이지테이블리드
⑫, ⑬ : 어드레스 변환중의 페이지테이블라이트
⑭, ⑮ : 어드레스 변환후의 물리어드레스 생성
Figure kpo00001
: 어드레스어레이에 의한 캐시메모리히트 또는 미스히트판정
Figure kpo00002
: 캐시메모리라이트
Figure kpo00003
: MPU1에서 메모리콘트롤러(5)로의 버스트 전송기동 및 메모리리드
Figure kpo00004
: 캐시메모리리드
Figure kpo00005
: 메모리라이트
Figure kpo00006
: 버스권 해방
Figure kpo00007
: 어드레스어레이의 히트판정
Figure kpo00008
: 캐시메모리의 무효화
xx 우선 최초에 MPU1이 버스마스터인 경우에는 액세스 대상이 I 실제공간, II 가상공간, TLB 히트, II' 가상공간 TLB 미스히트, III 다이렉트리드/라이트, IV I/O, 로칼메모리액세스의 경우가 있다.
X 실제공간
i) 캐시메모리히트
리드시에는 아이들상태 ①에서 모드디코더(207)에 의해 가상공간 액세스 또는 실제공간 액세스중 어느것이라 판정 ⑤하고, 실제공간의 물리어드레스이므로, 어드레스변환후의 물리어드레스생성 ⑮하고, 어드레스어레이에 의한 캐시메모리히트 또는 미스히트를 판정
Figure kpo00009
하고, 캐시메모리히트이므로, 캐시메모리리드(20)을 실행해서 아이들상태 ①로 복귀한다.
또, 라이트시에는 상기 리드시에 대응한 좌측의 상태 천이도의 ①→④→⑭→
Figure kpo00010
Figure kpo00011
Figure kpo00012
→①의 상태를 천이한다.
ii) 캐시메모리 미스히트
리드시에는 아이들상태 ①에서 모드디코더(207)에서의 가상공간 액세스 또는 실제공간 액세스의 판정 ⑤에 의해 실제공간을 위해 상태 ⑮로 천이하고, 이 상태 ⑮에서 실제공간의 물리어드레스이므로, 어드레스변환후의 물리어드레스를 생성하고, 상태
Figure kpo00013
에서의 판정으로 미스히트를 위해 상태
Figure kpo00014
로 천이해서 MPU1에서 메모리콘트롤러(5)로의 버스트전송기동 및 메모리리드를 실행하여 아이들상태 ①로 되돌아간다.
또, 라이트시에는 좌측의 루프의 ①→④→⑭→
Figure kpo00015
Figure kpo00016
→①의 상태천이를 실행한다.
[II 가상공간 TLB 히트]
i) 캐시메모리히트
리드시에는 아이들상태①에서 모드디코더(207)에 의해 가상공간 액세스 또는 실제공간 액세스중 어느것이라고 판정 ⑤하고, 가상공간이므로 TLB의 히트/미스히트의 판정⑦을 실행하고, 어드레스변환부의 물리어드레스 생성⑮하고, 어드레스어레이에 의한 캐시메모리히트 또는 미스히트판정
Figure kpo00017
하고, 캐시메모리리드
Figure kpo00018
해서 아이들상태로 복귀한다.
또, 라이트시에는 ①→④→⑥→⑭→
Figure kpo00019
Figure kpo00020
Figure kpo00021
→①의 상태천이를 따른다.
ii)캐시메모리 미스히트
이 리드시에는 아이들상태①에서 모드디코더(207)에서의 가상공간 액세스 또는 실제공간 액세스중 어느것인가의 판정⑤에서 가상공간이므로, TLB의 히트/미스히트의 판정⑦로 진행하여 어드레스변환후의 물리어드레스 생성⑮하고, 어드레스어레이에 의한 캐시메모리히트 또는 미스히트인가 판정
Figure kpo00022
하고, 미스히트이므로, MPU1에서 메모리콘트롤러(5)로의 버스트전송기동 및 메모리리드
Figure kpo00023
를 실행하여 아이들상태 ①로 되돌아간다.
또, 라이트시에는 ①→④→⑥→⑭→
Figure kpo00024
Figure kpo00025
→①의 순으로 상태천이한다.
[II' 가상공간 TLB 미스히트]
i) 캐시메모리히트
이 리드시에는 아이들상태①에서 모드디코더(207)에 의해 가상공간으로 판정되고⑤, TLB의 히트/미스히트판정⑦한 후에 세그먼트테이블리드⑨하고, 또, 어드레스 변환용의 페이지테이블리드⑪하여 어드레스변환을 실행한다. 그후, 필요가 있다면 페이지테이블상에 있는 제어정보(참조비트 등)을 리라이트하는 페이지테이블라이트⑬을 실행한다. 그후, 어드레스 변환후의 물리어드레스를 생성⑮하고, 어드레스어레이에 의한 캐시메모리히트 또는 미스히트판정
Figure kpo00026
하고, 캐시메모리리드
Figure kpo00027
해서 아이들상태로 복귀한다.
또, 라이트시에는 ①→④→⑥→⑧→⑩→(⑫)→⑭→
Figure kpo00028
Figure kpo00029
Figure kpo00030
→①의 상태천이를 실행한다.
ii)캐시메모리 미스히트
이 리드시에는 아이들상태①에서 모드디코더(207)에서의 판정으로 가상공간이라 판정하고⑤, TLB의 히트/미스히트판정⑦한 후에 어드레스교환의 세그먼트테이블리드⑨를 하고, 또 어드레스변환중의 페이지테이블리드하여 어드레스변환을 실행한다. 그후, 필요가 있다면 페이지테이블상에 있는 제어정보(참조 비트등)을 리라이트하는 페이지테이블라이트⑬을 실행한다. 그후, 어드레스 변환후의 물리어드레스생성⑮하고, 어드레스어레이에 의한 캐시메모리히트 또는 미스히트판정
Figure kpo00031
하고, MPU1에서 메모리콘트롤러(5)로의 버스트 전송기동 및 메모리리드
Figure kpo00032
해서 아이들상태①로 복귀한다.
또, 라이트시에는 ①→④→⑥→⑧→⑩ ? ? ?⑫? ? ? →⑭→
Figure kpo00033
Figure kpo00034
→①의 상태전이를 실행한다.
[III 다이렉트리드/라이트]
이 경우에는 아이들상태①에서 직접 버스콘트롤러(6)에, 메모리콘트롤러(5)의 콘트롤레지스터에 대한 다이렉트액세스②를 실행한 후에 아이들상태①로 복귀한다.
[IV I/O, 로칼메모리액세스]
이 경우에도 상기 다이렉트리드/라이트와 마찬가지로 아이들상태①에서 직접 로칼메모리, I/O에 대한 액세스③을 실행한 후에 아이들상태①로 돌아간다.
또, 그외의 경우에는 아이들상태①에서 버스권 해방
Figure kpo00035
를 실행하여 어드레스어레이의 히트판정
Figure kpo00036
해서 미스히트이므로 ? ? ?, MPU1을 버스마스터로 되돌려서
Figure kpo00037
? ? ?, 아이들상태로 복귀한다.
또, 액세스행선지로써 지정된 어드레스가 제 2 도의 입출력장치(I/O)(9)나 로칼메모리(10)의 경우, 메모리액세스 제어신호(252)로써는 I/O나 로칼메모리전용의 타이밍이 출력된다. 즉, 버스콘트롤러(6)은 메모리액세스제어신호를 I/O, 로칼메모리 전용 액세스제어신호로써 그대로 전달되는 것만으로도 좋다. 이때, I/O 또는 로칼메모리에 맞춰서 라이트데이타사이징부(208) 및 리드데이타용 사이징부(220)에 의해 데이타의 버스사이징을 실행할 수 있다. 버스권의 조정은 BUSREQ(254) 및 BUSACK(253)에 의해 실행하고, 버스해방중은 멀티플렉스버스(251)에서 들어오는 외부버스마스터가 출력하는 어드레스를 입력하여 캐시메모리히트판정기(CMP)(212)로 캐시히트가 있는가 어떤가를 감시한다.
상기 액세스제어신호 출력의 동작에 대해서 상세하게 기술하면, 제 5 도에 도시한 바와같이, 논리어드레스 공간에 대해서 어드레스변환된 물리어드레스공간의 물리어드레스에 대응한 스테이지가 제 6 도에 도시한 바와같이 출력된다. ①의 메모리액세스스테이지는 캐시메모리의 히트판정에서 들어와 미스히트한 경우에 기동된다. 라이트시의 예에서 각 액세스대상에 따라서 길이가 다른 라이트 신호를 출력하는 타이밍이 표시되어 있지만 리드의 경우에도 이것에 대응한 각각 길이가 다른 리드신호가 출력된다. 또, 제 7 도의 시스템전체의 구성도에서 도시한 바와같이 라이트시를 예로들면 메모리, I/O, 로칼메모리의 각각에 전용의 라이트신호가 필요하게 되지만, MPU1의 라이트신호(1000)에 어드레스 디코더 논리를 부가하는 것만으로 각각의 라이트 신호를 만들 수 있어 버스콘트롤러(6)중에서 전용스테이지를 만들지 않아도 된다.
다음에 메모리액세스시의 버스사이징의 상세한 것을 제 3 도를 사용해서 설명한다. 여기에서는 라이트데이타(225)와 그외의 어드레스(226)의 선택을 간소화하기 위해 셀렉터(131) 내지 (134)로 대용해서 표시하고 있다. 우선, 라이트액세스의 경우, 라이트데이타레지스터(201)과 각 바이트가 셀렉터(127) 내지 (130)에 각각 들어가 있어 명령실행 유니트가 마이크로프로세서에 의해 직접 리라이트할 수 있는 레지스터인 메모리액세스 지정부(99)로의 설정 및 물리어드레스의 디코더(105)의 출력에 따라서 셀렉터(127) 내지 (130)을 제어하는 것에 의해 라이트데이타레지스터(201)과 각 바이트는 멀티플렉스버스의 어떠한 4바이트(143 내지 146)에도 출력이 가능하다. 이때, 셀렉터(139)에서 나오는 물리어드레스 디코더(105)가 해독하여 메인메모리의 경우에는 어느 바이트에 액세스할 것인가를 지정하는 버스이네이블신호를, 로칼메모리나 I/O의 경우에는 이들에 전용의 액세스 지정신호를 출력하도록 패턴변환부(106)을 제어한다. 한편, 리드액세스의 경우, 메인 메모리액세스시는 입력데이타(109) 내지 (112)가 그대로 리드데이타레지스터(200)의 제 4 바이트(상위측)에서 차례로 입력된다. 로칼메모리액세스의 경우, 로칼메모리는 2바이트분의 버스폭밖에 없지만, 데이타 래치(100) 내지 (103)을 갖게하는 것에 의해, 1번에 4바이트의 리드를 할 수 있다.
즉, MPU1은 메모리액세스의 기동을 메모리액세스 지정부(99)에서 출력되는 메모리액세스 기동신(118)로 실행하여 리드데이타를 리드에타레지스터(200)에 전달한 시점에서 액세스종료 보고신호(119)를 메모리액세스 지정부(99)가 수납하여 액세스를 종료한다. 메인메모리액세스된 경우의 타이밍도를 제 8b 도에 나타낸다. 로칼메모리액세스의 경우, (a)와 같이 1회의 메모리액세스의 지정으로 2회 액세스를 기동하여 1회째의 데이타를 A래치 클럭의 타이밍에서 데이타래치(101), (102)에 입력한다. 그후, 또 1회의 리드를 실행하여 B래치클럭의 타이밍에서 데이타래치(101), (103)에 2회째의 데이타를 입력한다. 그리고 라이트때와 마찬가지고 메모리액세스 지정부(99)의 설정 및 물리어드레스의 디코더 결과에 따라 셀렉터(123) 내지 (126)에 의해 데이타를 사이징하여 한번에 4바이트를 리드데이타레지스터(200)에 입력한다.
본 실시예에 의하면, 어드레스를 디코드하고, 그 결과에 따라서 디바이스마다 전용의 액세스스테이지의 기동이나 버스사이징을 실행하므로, 주변디바이스와의 접속이 용이하게 된다. 또, 디바이스에 의해 하드웨어 자동적으로 2회의 액세스를 기동하여 버스폭이 좁은 디바이스에도 4바이트 리드액세스할 수 있으므로, 소프트웨어의 간소화가 가능하다.
그런데, 제 2 도의 본 실시예의 시스템 구성의 1예에서 앞서 기술한 바와같이, (1)은 명령실행유니트(3)과 함께 캐시히트판정기능을 구비한 메모리관리유니트(2), DMA 콘트롤유니트(4)를 1칩화한 MPU, (6)은 버스조정 및 I/O등의 인터페이스제어를 실행하는 버스콘트롤러, (5)는 메인메모리액세스를 제어하는 메모리콘트롤러, (19)는 메인메모리, (7)은 어드레스어레이, (8)은 캐시메모리, (9)는 I/O 모듈, (20)은 외부의 버스마스터, (215)은 멀티플렉스버스, (16)은 어드레스버스, (17)은 데이타버스, (249)는 어드레스어레이데이타, (14)는 구동회로, (11)은 어드레스용 래치, (12)는 데이타용 양방향 구동회로, (13)은 캐시어드레스용래치이다. 메모리콘트롤러(5)는 멀티플렉스버스(251) 및 데이타버스(17)과 접속되고, 어드레스는 항상 멀티플렉스버스(251)에서 받아 내부에서 래치하는 기능을 구비한다. 이하, 각 모드에서의 버스의 사용법에 대해서 기술한다.
버스콘트롤러(6), 메모리콘트롤러(5)의 콘트롤레지스터에 대한 액세스시는 제 9 도에 도시한 바와같이, 데이타, 어드레스 모두 멀티플렉스버스(251)을 거쳐서 전송을 실행한다. 여기에서 점선은 어드레스, 실선은 데이타의 흐름을 나타낸다. 이 DMA의 방법에서, MPU1 내부의 DMA 콘트롤류이트(4)를 사용하는 경우, MPU1은 어드레스만을 멀티플렉스버스(251)에 출력하고, 메모리콘트롤러(5)는 그 어드레스를 래치하여 데이타버스(17)을 거쳐서 데이타의 전송을 실행한다. 또, MPU1 내부의 DMA 콘트롤유니트(4)를 사용하지 않은 경우, 즉 외부의 버스마스터(20)이 DMA를 실행하는 경우에는 버스마스터가 DMA 어드레스를 어드레스버스(16)에 출력한다. 이때, 구동회로(14)를 통해서 DMA 어드레스가 멀티플렉스버스(251)에 전달되어 메모리콘트롤러(5)는 멀티플렉스버스(251)상의 어드레스를 래치한다. 데이타는 데이타버스(17)에 의해서 주고받음을 실행한다. 이때, MPU1은 멀티플렉스버스(251)상의 어드레스를 감시하여 DMA 어드레스가 캐시를 히트한 경우, 캐시메모리(8)이 해당하는 엔트리의 무효화를 실행한다.
이것에 의해, 캐시메모리액세스, 메인메모리액세스가 구동회로를 거치지 않고 직접 실행될 수 있으므로, 메모리 액세스의 속도를 향상시킬 수 있다. 또, 메모리콘트롤러의 어드레스를 항상 멀티플렉스버스에서 취하는 것에 의해서 고성능을 유지하면서 메모리콘트롤러의 핀수를 최소로 하는 구성으로 되어 있다.
다음에 I/O (9), 로칼메모리(10)을 액세스할때는 제 10 도에 도시한 바와같이 어드레스는 어드레스버스(61), 데이타는 데이타버스(17)를 거쳐서 실행한다.
MPU1에서 멀티플렉스버스(251)에 츨력된 어드레스를 래치(11)에서 래치하여 어드레스버스(16)의 어드레스가 확정된다. 제어신호에 의해 데이타용 양방향 구동회로(12)를 제어하여 리드시는 데이타버스(17)상에 출력된 데이타를 멀티플렉스버스(215)을 거쳐서, MPU1에 입력하여 라이트할때는 멀티플렉스버스(251)에서 데이타버스(17)로 전달되어 I/O(9) 또는 로칼메모리(10)에 데이타를 라이트한다.
또, 캐시메모리액세스시는 제 11 도에 도시한 바와같이, 어드레스, 데이타 모두 멀티플렉스버스(251)을 거쳐서 전송된다.
이 캐시메모리의 액세스시에는 우선, MPU1에서 출력된 어드레스를 캐시어드레스용 래치(13) 및 메모리콘트롤러(5)의 내부에서 래치한다. 어드레스어레이(7)에서 나온 어드레스어레이데이타(249)에 의해 MPU1 내부에서 캐시히트판정을 실행하고, 히트한 경우에는 캐시메모리(8)에서 데이타가 나오도록 제어하여 MPU1이 멀티플렉스버스(251)에서 데이타를 입력한다. 미스히트한 경우는 액세스제어신호(252)에 의해 메모리콘트롤러(5)가 메인메모리(19)에서 리드한 데이타를 멀티플렉스버스(9)에 출력하여 MPU1이 데이타를 입력한다. 그후, 캐시가 미스히트한 블럭의 데이타의 교체전송을 메모리콘트로러(5)가 실행한다. 라이트액세스에서는 어드레스래치후에 MPU1에서 데이타가 멀티플렉스버스(251)상에 출력되고 캐시가 히트한 경우에는 캐시메모리(8) 및 메인메모리(19)에, 미스히트한 경우는 메인메모리(19)에만 라이트를 실행한다.
또, 메모리액세스는 제 12 도에 도시한 바와같이, 어드레스데이타와 함께 멀티플렉스버스(251)을 거쳐서 실행한다.
또, 버스전송시에 메모리리드에서 캐시메모리가 미스히트한 경우에 제 13 도에 도시한 바와같이, MPU1은 버스트전송요구신호(2003)에 의해 메모리콘트롤러(5)에 대해 캐시메모리의 블럭을 교체하여 기동을 건다. 메모리콘트롤러(5)는 신호(2002)에 의해 하위측의 어드레스를 변화시키면서 멀티플렉스버스(251)을 거쳐서 데이타를 전송한다.
또, MPU1 내의 DMA 콘트롤유니트(4)에 의한 DMA 전송을 실행하는 경우에는 제 14 도에 도시한 바와같이, DMA 콘트롤러가 어드레스만을 출력하여 I/O와 메인메모리사이에서 데이타의 주고받음을 실행한다. DMA 어드레스는 신호선(227)을 통하여 멀티플렉스버스(251)위에 출력된다. 여기에서 어드레스는 멀티플렉스버스(251)을 거쳐서 전달되고, 메모리콘트롤러(5), I/O (9)사이의 데이타전송은 데이타버스(17)을 거쳐서 실행된다.
또, 외부 DMA 콘트롤러에 의한 DMA 전송을 실행하는 경우에는 제 15 도에 도시한 바와같이, 외부 DMA 콘트롤러(2004)가 출력하는 어드레스는 어드레스버스용 구동회로(14)를 거쳐서 멀티플렉스버스(251)에 전달되어 메모리콘트롤러(5)에 들어간다. 데이타는 데이타버스(17)을 거쳐서 전송된다.
또, 버스감시시의 캐시메모리 무효화의 경우에는 제 16 도에 도시한 바와같이, 외부 DMA 콘트롤러(2004)의 어드레스출력을 MPU1은 멀티플렉서(251)에서 입력하고, 캐시메모리의 히트판정을 히트판정기(21)에 의해서 실행한다. 여기에서 라이트히트한 경우, 어드레스어레이데이타버스(249)를 거쳐서 캐시메모리의 무효화(유효한 비트의 클리어 등)를 실행한다.
상술한 바와같이, 본 시스템에 있어서의 메모리콘트롤러(5)는 메모리액세스, 캐시메모리의 버스트전송, 다이렉트액세스에 사용하는 어드레스/디코더의 다중화된 버스의 인터페이스외에 DMA 시에 I/O (9)와의 사이에서 데이타전송을 실행하는 데이타버스(17)의 인터페이스를 구비하고 있다.
또, 상술한 시스템구성에서, MPU1은 메모리관리유니트(2), 명령실행유니트(3), DMA 콘트롤유니트(4)가 다른 칩으로 되어도 지장이 없다. 그 경우, DMA 콘트롤유니트(4)는 멀티플렉스(251)에 접속되어도 되지만, 어드레스버스(16)과 데이타버스(17)에 접속되어도 된다.
이상의 실시예에서는 멀티플렉스버스를 갖는 정보처리시스템에서 캐시메모리 및 메모리콘트롤러에 직결시키는 것에 의해 메모리액세스의 성능을 향상시키고, 또한 메모리콘트롤의 핀수를 감소시키는 등 최적한 시스템구성을 실현할 수 있다.
또, 액세스하는 디바이스를 어드레스에 의해 판정하고, 그것에 따른 액세스스테이지의 기동, 제어신호의 출력, 버스의 사이징 등을 실행할 수 있어 액세스속도나 구축하는 방법이 다른 여러가지 디바이스와의 접속을 용이하게 한다는 효과가 있다. 또, 버스폭이 다른 디바이스에 대해서도 자동적으로 2회의 액세스를 실행하여 버퍼에 축적되며, 또한 버스사이징을 실행할 수 있으므로, 소프트웨어의 간소화도 가능하다.

Claims (8)

  1. 액세스대상의 어드레스를 저장하는 논리어드레스레지스터를 갖는 명령실행 유니트, 다이렉트 메모리액세스시의 어드레스를 저장하는 DMA 레지스터를 갖는 DMA 콘트롤러, 상기 명령실행유니트의 논리어드레스레지스터가 저장된 논리어드레스를 액세스 대상의 물리어드레스로 변환하는 어드레스 변환수단과 상기 물리어드레스에 따라서 외부에 접속되는 캐시메모리의 히트판정을 실행하는 히트판정수단 및 상기 캐시메모리의 버스트전송을 실행하는 버스트전송수단을 갖는 메모리관리유니트를 포함한 원칩 마이크로프로세서.
  2. 특허청구의 범위 제 1 항에 있어서, 상기 메모리관리유니트는 상기 물리어드레스를 디코드해서 상기 물리어드레스에서 지정된 액세스디바이스를 해독하는 디코드수단 및 상기 디코드수단의 출력에서 상기 액세스디바이스에 대응하는 소정의 버스네이블신호 또는 액세스지정신호를 출력하는 패턴변환수단을 포함한 것을 특징으로 하는 원칩 마이크로프로세서.
  3. 특허청구의 범위 제 1 항에 있어서, 상기 메모리관리유니트는 외부의 버스에서 접속되어 리드데이타를 일시 저장하는 버퍼를 구비하고, 한번의 리드액세스지정으로 다수회의 메모리액세스를 기동해서 상기 버퍼에 리드데이타를 축적하고, 버스사이징후에 상기 명령실행유니트에 송출하는 것을 특징으로 하는 원칩 마이크로프로세서.
  4. 특허청구의 범위 제 1 항에 있어서, 상기 메모리관리유니트는 외부에 접속되는 상기 캐시메모리어드레스어레이의 제어수단을 포함한 것을 특징으로 하는 원칩 마이크로프로세서.
  5. 특허청구의 범위 제 1 항에 있어서, 상기 원칩 마이크로프로세서에는 캐시메모리미스히트시의 블럭전송을 실행하는 메인 메모리콘트롤러가 접속된 것을 특징으로 하는 원칩 마이크로프로세서.
  6. 특허청구의 범위 제 1 항 기재의 원칩 마이크로프로세서를 사용한 버스시스템에 있어서, 상기 원칩 마이크로프로세서에 멀티플렉스버스로 접속된 캐시메모리와 메모리콘트롤러 및 메인메모리를 구비하고, 상기 원칩 마이크로프로세서는 데이타와 어드레스를 다중화해서 상기 멀티플렉스버스로 출력함과 동시에 상기 원칩 마이크로프로세서는 상기 캐시메모리와 메인메모리사이에서 직접 데이타의 전송을 실행하게 하는 것을 특징으로 하는 버스시스템.
  7. 특허청구의 범위 제 6 항에 있어서, 상기 메모리콘트롤러는 메모리액세스시의 데이타 및 모든 경우의 어드레스를 상기 멀티플렉스버스에서 입력함과 동시에 상기 원칩 마이크로프로세서와 상기 메모리콘트롤러 사이에는 상기 멀티플렉스버스에서 구동회로에 의해 분리된 데이타전용 버스가 마련되어 있는 것을 특징으로 하는 버스시스템.
  8. 특허청구의 범위 제 6 항에 있어서, 상기 메모리관리유니트는 상기 물리어드레스를 디코드해서 상기 물리어드레스에 의해 지정된 액세스디바이스를 해독하는 디코드수단 및 상기 디코드수단의 출력에서 상기 액세스디바이스에 대응하는 소정의 버스네이블신호 또는 액세스지정신호를 출력하는 패턴변환수단을 포함하고, 또 상기 버스시스템에는 상기 패턴변환수단의 출력에 의해 어드레스디코드신호만을 AND해서 각 모듈에 전달하는 버스콘트롤러를 구비한 것을 특징으로 하는 버스시스템.
KR1019910002447A 1990-02-16 1991-02-13 원칩 마이크로프로세서 및 그 버스시스템 KR930008050B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP33723 1990-02-16
JP3372390 1990-02-16
JP2-33723 1990-03-29

Publications (2)

Publication Number Publication Date
KR910015933A KR910015933A (ko) 1991-09-30
KR930008050B1 true KR930008050B1 (ko) 1993-08-25

Family

ID=12394321

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019910002447A KR930008050B1 (ko) 1990-02-16 1991-02-13 원칩 마이크로프로세서 및 그 버스시스템

Country Status (2)

Country Link
US (1) US5347643A (ko)
KR (1) KR930008050B1 (ko)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0553920A (ja) * 1991-08-26 1993-03-05 Toshiba Corp 構造化アドレス生成装置
US5537553A (en) * 1992-11-13 1996-07-16 Matsushita Electric Industrial Co., Ltd. Method of and apparatus for bus control and data processor
US5457802A (en) * 1993-05-17 1995-10-10 Motorola, Inc. Integrated circuit pin control apparatus and method thereof in a data processing system
JPH07152721A (ja) * 1993-11-29 1995-06-16 Mitsubishi Electric Corp マイクロコンピュータ
JPH07210395A (ja) * 1994-01-10 1995-08-11 Fujitsu Ltd ファームウェアメンテナンス方式
US5651138A (en) * 1994-08-31 1997-07-22 Motorola, Inc. Data processor with controlled burst memory accesses and method therefor
US6643765B1 (en) * 1995-08-16 2003-11-04 Microunity Systems Engineering, Inc. Programmable processor with group floating point operations
US5953241A (en) * 1995-08-16 1999-09-14 Microunity Engeering Systems, Inc. Multiplier array processing system with enhanced utilization at lower precision for group multiply and sum instruction
US6295599B1 (en) * 1995-08-16 2001-09-25 Microunity Systems Engineering System and method for providing a wide operand architecture
US5742840A (en) * 1995-08-16 1998-04-21 Microunity Systems Engineering, Inc. General purpose, multiple precision parallel operation, programmable media processor
US7301541B2 (en) * 1995-08-16 2007-11-27 Microunity Systems Engineering, Inc. Programmable processor and method with wide operations
US5765022A (en) * 1995-09-29 1998-06-09 International Business Machines Corporation System for transferring data from a source device to a target device in which the address of data movement engine is determined
US6092229A (en) * 1996-10-09 2000-07-18 Lsi Logic Corporation Single chip systems using general purpose processors
KR100229897B1 (ko) * 1997-01-10 1999-11-15 윤종용 직접 메모리 억세스 전송방법에 따른 타이밍 모드선택장치
US5895726A (en) * 1997-04-28 1999-04-20 The United States Of America As Represented By The Secretary Of The Navy Lightweight high damping porous metal/phthalonitrile composites
US7632565B1 (en) 1997-04-28 2009-12-15 The United States Of America As Represented By The Secretary Of The Navy Porous metal/organic polymeric composites
KR100392383B1 (ko) * 2000-12-27 2003-07-23 한국전자통신연구원 분할 버스를 가진 반도체 칩
US7246202B2 (en) * 2002-11-11 2007-07-17 Matsushita Electric Industrial Co., Ltd. Cache controller, cache control method, and computer system
US9459960B2 (en) 2005-06-03 2016-10-04 Rambus Inc. Controller device for use with electrically erasable programmable memory chip with error detection and retry modes of operation
US7831882B2 (en) 2005-06-03 2010-11-09 Rambus Inc. Memory system with error detection and retry modes of operation
US7644198B2 (en) 2005-10-07 2010-01-05 International Business Machines Corporation DMAC translation mechanism
US7562285B2 (en) 2006-01-11 2009-07-14 Rambus Inc. Unidirectional error code transfer for a bidirectional data link
US20070271495A1 (en) * 2006-05-18 2007-11-22 Ian Shaeffer System to detect and identify errors in control information, read data and/or write data
US8352805B2 (en) 2006-05-18 2013-01-08 Rambus Inc. Memory error detection
US11361839B2 (en) 2018-03-26 2022-06-14 Rambus Inc. Command/address channel error detection

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4567606A (en) * 1982-11-03 1986-01-28 International Telephone And Telegraph Corporation Data processing apparatus and method for use in speech recognition
US4626985A (en) * 1982-12-30 1986-12-02 Thomson Components - Mostek Corporation Single-chip microcomputer with internal time-multiplexed address/data/interrupt bus
JPS6145347A (ja) * 1984-08-10 1986-03-05 Nec Corp マイクロコンピユ−タ
KR860007588A (ko) * 1985-03-25 1986-10-15 미쓰다 가쓰시게 데이터 처리장치
JPS6266350A (ja) * 1985-09-18 1987-03-25 Nec Corp キヤツシユ・メモリ
US4912636A (en) * 1987-03-13 1990-03-27 Magar Surendar S Data processing device with multiple on chip memory buses
US5099417A (en) * 1987-03-13 1992-03-24 Texas Instruments Incorporated Data processing device with improved direct memory access
US4908748A (en) * 1987-07-28 1990-03-13 Texas Instruments Incorporated Data processing device with parallel circular addressing hardware
KR900008516A (ko) * 1988-11-01 1990-06-04 미다 가쓰시게 버퍼 기억장치
CA1311063C (en) * 1988-12-16 1992-12-01 Tokumichi Murakami Digital signal processor

Also Published As

Publication number Publication date
US5347643A (en) 1994-09-13
KR910015933A (ko) 1991-09-30

Similar Documents

Publication Publication Date Title
KR930008050B1 (ko) 원칩 마이크로프로세서 및 그 버스시스템
EP0549164B1 (en) Memory controller with snooping mechanism
US3898624A (en) Data processing system with variable prefetch and replacement algorithms
US5581727A (en) Hierarchical cache system flushing scheme based on monitoring and decoding processor bus cycles for flush/clear sequence control
US5537555A (en) Fully pipelined and highly concurrent memory controller
EP0453268B1 (en) A microprocessor for inserting a bus cycle to output an internal information for an emulation
KR100257518B1 (ko) 캐쉬 슬라이스로서 리사이즈 및 재배치가능한 메모리 스크래치패드
CA2119401C (en) Computer system which overrides write protection status during execution in system management mode
CA1313274C (en) Control of pipelined operation in a microcomputer system employing dynamic bus sizing with 80386 processor and 82385 cache controller
EP0408058B1 (en) Microprocessor
US4891752A (en) Multimode expanded memory space addressing system using independently generated DMA channel selection and DMA page address signals
WO1994008296A1 (en) Double buffering operations between the memory bus and the expansion bus of a computer system
GB1580846A (en) Data processing system
JPH01156845A (ja) メモリ・システム
JP3523286B2 (ja) 順次データ転送型メモリ及び順次データ転送型メモリを用いたコンピュータシステム
US5226170A (en) Interface between processor and special instruction processor in digital data processing system
US5175826A (en) Delayed cache write enable circuit for a dual bus microcomputer system with an 80386 and 82385
JPH04140880A (ja) ベクトル処理装置
EP0196244A2 (en) Cache MMU system
US7146469B2 (en) Method, apparatus, and system for improving memory access speed
US5781925A (en) Method of preventing cache corruption during microprocessor pipelined burst operations
JP4965974B2 (ja) 半導体集積回路装置
JPH0594370A (ja) コンピユータメモリシステム及び仮想メモリアドレツシング区分方法
JP2008123333A5 (ko)
KR930004433B1 (ko) 직접제어가 가능한 캐쉬메모리

Legal Events

Date Code Title Description
A201 Request for examination
G160 Decision to publish patent application
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20030801

Year of fee payment: 11

LAPS Lapse due to unpaid annual fee