KR100279780B1 - 마이크로 컴퓨터 및 마이크로 컴퓨터 시스템 - Google Patents

마이크로 컴퓨터 및 마이크로 컴퓨터 시스템 Download PDF

Info

Publication number
KR100279780B1
KR100279780B1 KR1019930022424A KR930022424A KR100279780B1 KR 100279780 B1 KR100279780 B1 KR 100279780B1 KR 1019930022424 A KR1019930022424 A KR 1019930022424A KR 930022424 A KR930022424 A KR 930022424A KR 100279780 B1 KR100279780 B1 KR 100279780B1
Authority
KR
South Korea
Prior art keywords
address
terminal
data
memory
bus
Prior art date
Application number
KR1019930022424A
Other languages
English (en)
Other versions
KR940012150A (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 KR940012150A publication Critical patent/KR940012150A/ko
Application granted granted Critical
Publication of KR100279780B1 publication Critical patent/KR100279780B1/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/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7828Architectures of general purpose stored program computers comprising a single central processing unit without memory
    • G06F15/7832Architectures of general purpose stored program computers comprising a single central processing unit without memory on one IC chip (single chip microprocessors)
    • 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/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4234Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
    • G06F13/4239Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus with asynchronous protocol
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7839Architectures of general purpose stored program computers comprising a single central processing unit with memory
    • G06F15/7842Architectures of general purpose stored program computers comprising a single central processing unit with memory on one IC chip (single chip microcontrollers)
    • G06F15/786Architectures of general purpose stored program computers comprising a single central processing unit with memory on one IC chip (single chip microcontrollers) using a single memory module

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Microcomputers (AREA)
  • Dram (AREA)
  • Memory System (AREA)

Abstract

다이나믹형 RAM을 직결가능한 마이크로컴퓨터에 관한 것으로써, 다이나믹 RAM 및, 스테이틱RAM등의 메모리와 그밖의 주변회로를 직결할 수 있어 사용하기 편리하게 하기 위해, 다이나믹RAM을 직결할 수 있게 하기 위해 다이나믹RAM을 위한 스트로브신호 출력 단자 CASH*, CASL*, RAS*을 마련하고, 또 스테이틱RAM이나 그밖의 주변회로와의 직결을 위해 스트로브신호 출력단자로 부터의 출력에 병행해서 칩셀렉트신호를 출력할 수 있는 칩셀렉트신호 출력단자 CS0*∼CS6을 마련한다. 어드레스출력단자는 논멀티플렉스 또는 필요에 따라서 멀티플렉스된 어드레스신호를 출력할 수 있게 되고, 멀티버스방식의 인터페이스에 대응하기 위해 선택적으로 어드레스신호를 출력할 수 있는 데이타의 입출력단자를 채용한다. 이러한 것을 취하는 것에 의해, 시스템구축에 유연하게 대응할 수 있고, 저소비전력화, 고신뢰도, 고기능화가 가능하다.

Description

마이크로 컴퓨터 및 마이크로 컴퓨터 시스템
제1도는 본 발명의 1실시예에 관한 마이크로컴퓨터의 상반부를 도시한 블록도.
제2도는 본 발명의 1실시예에 관한 마이크로컴퓨터의 하반부를 도시한 블록도.
제3도는 본 실시예의 마이크로컴퓨터의 칩을 패케이지한 상태에 있어서의 상반부의 단자의 배열 구성예를 도시한 설명도.
제4도는 본 실시예의 마이크로컴퓨터의 칩을 패케이지한 상태에 있어서의 하반부의 단자의 배열구성예를 도시한 설명도.
제5도는 본 실시예의 마이크로컴퓨터에 있어서의 주요한 내장회로 모듈의 레이아우트도.
제6도는 본 실시예의 마이크로컴퓨터에 있어서의 버스 스테이트 컨트롤러를 중심으로 한 블록도.
제7도는 외부액세스 버스 스테이트머신을 중심으로 한 버스스테이트 컨트롤러의 더욱 상세한 1예의 블록도.
제8도는 영역분할된 영역 0의 어드레스맵도.
제9도는 영역분할된 영역 1의 어드레스맵도.
제10도는 영역분할된 영역 2의 어드레스맵도.
제11도는 영역분할된 영역 4의 어드레스맵도.
제12도는 영역분할된 영역 5의 어드레스맵도.
제13도는 영역분할된 영역 6의 어드레스맵도.
제14도는 영역분할된 영역 7의 어드레스맵도.
제15도는 영역분할된 영역 0의 다른 어드레스맵도.
제16도는 영역분할된 영역 1의 다른 어드레스맵도.
제17도는 영역분할된 영역 2의 다른 어드레스맵도.
제18도는 영역분할된 영역 4의 다른 어드레스맵도.
제19도는 영역분할된 영역 5의 다른 어드레스맵도.
제20도는 영역분할된 영역 6의 다른 어드레스맵도.
제21도는 영역분할된 영역 7의 다른 어드레스맵도.
제22도는 I/O 요구 커맨드의 할당예를 도시한 설명도.
제23도는 내부액세스버스 스테이트머신의 상태천이도.
제24도는 액세스상태코드, 다음 액세스상태코드 및 그것에 대응하는 처리를 도시한 설명도.
제25도는 액세스상태코드, 다음 액세스상태코드 및 그것에 대응하는 처리를 도시한 다른 설명도.
제26도는 액세스상태코드, 다음 액세스상태코드 및 그것에 대응하는 처리를 도시한 또 다른 설명도.
제27도는 액세스상태코드, 다음 액세스상태코드 및 그것에 대응하는 처리를 도시한 다른 설명도.
제28도는 DRAM 스테이트머신의 상태천이도.
제29도는 버스사이즈 아버트레이션 스테이트머신의 상태천이도.
제30도는 외부 웨이트생성 스테이트머신의 상태천이도.
제31도는 통상공간 액세스 스테이트머신의 상태천이도.
제32도는 통상공간 서브스테이트플래그의 상태천이도.
제33도는 I/OMUX 액세스 스테이트머신의 상태천이도.
제34도는 본 실시예의 마이크로컴퓨터를 적용한 1예의 시스템구성도.
제35도는 짧은 피치의 고속 페이지모드에 의한 1예의 리드동작 타이밍도.
제36도는 짧은 피치의 고속 페이지모드에 의한 1예의 라이트동작 타이밍도.
제37도는 긴 피치의 고속 페이지모드에 의한 1예의 리드동작 타이밍도.
제38도는 CBR리프레시를 위한 스트로브신호의 1예의 타이밍도.
제39도는 셀프리프레시를 위한 스트로브신호의 1예의 타이밍도.
제40도는 스테이틱 컬럼모드에 의한 긴 피치 액세스의 1예의 타이밍도.
제41도는 DRAM에 대한 노웨이트 스테이트에서의 풀액세스의 타이밍도.
제42도는 DRAM에 대한 1웨이트스테이트에서의 풀액세스의 타이밍도.
제43도는 DRAM에 대한 2프리차지사이클에서의 노웨이트스테이트의 풀액세스의 타이밍도.
제44도는 1스테이트에서의 기본 버스사이클을 도시한 타이밍도.
제45도는 2스테이트에서의 기본 버스사이클의 타이밍도.
제46도는 2스테이트에서의 기본 버스사이클에 웨이트스테이트를 삽입한 액세스 타이밍도.
제47도는 3스테이트에서의 기본 버스사이클의 타이밍도.
제48도는 3스테이트에서의 기본 버스사이클에 웨이트스테이트를 삽입한 액세스 타이밍도.
제49도는 듀티 보정회로의 원리설명도.
제50도는 제49도의 듀티 보정회로의 1예의 동작타이밍 파형도.
제51도는 본 실시예의 마이크로컴퓨터의 클럭발생회로에 적용한 50%의 듀티 보정회로부분의 회로도.
제52도는 본 실시예의 마이크로컴퓨터의 클럭발생회로에 적용한 35%의 듀티 보정회로부분의 회로도.
제53도는 35%의 듀티 보정회로부분에 포함되는 지연량 제어회로의 1예를 도시함과 동시에 듀티50%의 CKM과 듀티 35%의 CK35의 파형을 도시한 설명도.
제54도는 듀티50%, 35%의 클럭을 이용해서 CAS*를 생성하는 스트로브생성 논리의 1예의 논리구성 설명도.
제55도는 35%듀티의 CAS*, RAS*, 논오버랩 2상 클럭신호ψ1, ψ2와 듀티50% 및 35%의 클럭신호의 상관의 1예를 도시한 파형도.
제56도는 마이크로컴퓨터에 포함되는 범용레지스터와 컨트롤레지스터의 구성설명도.
제57도는 마이크로컴퓨터에 포함되는 시스템레지스터구성되 레지스터의 데이타구성 및 메모리상의 데이타 구성설명도.
제58도는 마이크로컴퓨터에 의한 어드레싱모드와 실효어드레스 계산방법의 제1의 설명도.
제59도는 마이크로컴퓨터에 의한 어드레싱모드와 실효어드레스 계산방법의 제2의 설명도.
제60도는 마이크로컴퓨터에 의한 어드레싱모드와 실효어드레스 계산방법의 제3의 설명도.
제61도는 명령설명형식의 1예를 도시한 설명도.
제62도는 데이타전송 명령군의 제1의 설명도.
제63도는 데이타전송 명령군의 제2의 설명도.
제64도는 산술연산 명령군의 제1의 설명도.
제65도는 산술연산 명령군의 제2의 설명도.
제66도는 논리연산 명령군의 설명도.
제67도는 시프트명령군의 설명도.
제68도는 분기명령군의 설명도.
제69도는 시스템제어 명령군의 제1의 설명도.
제70도는 시스템제어명령군의 제2의 설명도.
제71도는 시스템제어명령군의 제3의 설명도.
본 발명은 다이나믹형RAM(Random Access Memory) (이하, 다이나믹RAM 또는 DRAM 이라고도 한다)을 직결할 수 있는 싱글칩 마이크로컴퓨터에 관한 것이다.
다이나믹형 RAM을 직결할 수 있는 마이크로컴퓨터에 대해서 기재된 문헌의 예로써는 일본국 특허공개공보 소화 61-127056호 (1988년12월20일주식회사히다찌세이사꾸쇼에 의해 출원된 USP.No.4, 792, 891에 대응)가 있다. 이 문헌에 기재된 마이크로컴퓨터는 리프레시어드레스를 발생하는 리프레시어드레스카운터나 RAS*(ROW Address Strobe Signal), CAS*(Coulumn Address Strobe Signel)과 같은 스트로브신호를 형성하기 위한 컨트롤신호 형성회로 및 다이나믹RAM에 대한 액세스인지 스테이틱RAM에 대한 액세스인지를 지정하는 레지스터를 갖고, 이 레지스터의 설정내용에 따라서 어드레스의 출력형식을 변경할 수 있게 되어 있다. 따라서, 스테이틱형 RAM은 물론 다이나믹형 RAM을 액세스하거나 다이나믹형 RAM의 리프레시를 실행할 수 있다. 또, 상기 레지스터는 사용하는 다이나믹 RAM의 어드레스범위나 기억용량, 즉 어드레스신호의 비트수를 지정할 수 있게 되어 사용하는 다이나믹 RAM의 기억용량이나 갯수를 어느 정도 자유로이 변경되는 범용성이 고려되어 있다. 또, RAS* 및 CAS*의 * 표는 반전신호를 나타내는 신호로 된다.
본 발명자는 다이나믹형 RAM 인터페이스를 구비한 싱글칩 마이크로 컴퓨터에 대해서 검토하였다. 그 결과, 다음의 필요성을 발견하였다.
(1) 다이나믹형 RAM의 셀프리프레시기능을 싱글칩 마이크로컴퓨터내의 DRAM컨트롤러로 서포트하는 것, 즉 사용자가 DRAM컨트롤러의 소정의 레지스터에 데이타를 세트하면 소정의 시퀀스에 의해 RAS*, CAS*가 동작하여 DRAM이 셀프리프레시 모드로 들어가게 하는 것.
(2) DRAM의 데이타에 대해서 패리티 체크를 실행할 수 있게 하는 것.
(3) 멀티버스방식의 인터페이스를 마련하는 것에 의해서 SCSI(Small Computer Serial Interface)컨트롤러나 하드디스크 콘트롤러(HDC)용 LSI를 싱글칩 마이크로컴퓨터에 직결할 수 있게 하는 것.
(4) 더나아가서는 단지 싱글칩 마이크로컴퓨터에 주변기능을 편입시킬 뿐만아니라 싱글칩 마이크로컴퓨터가 액세스시간 45ns의 고속 페이지모드의 DRAM을 동작주파수 16MHz의 1클럭에 의해 액세스할 수 있게 하는 것.
본 발명의 목적은 다이나믹RAM과 스테이틱RAM 등의 메모리 및 그밖의 주변회로를 직결할 수 있어 사용하기 편한 마이크로컴퓨터를 제공하는 것이다.
본 발명의 다른 목적은 배터리 백업모드와 같은 시스템의 저소비전력을 위한 동작모드에 최적한 다이나믹RAM 리프레시동작을 서포트 할 수 있는 마이크로컴퓨터를 제공하는 것이다.
본 발명의 또 다른 목적은 다이나믹RAM의 페이지모드에서의 고속액세스를 실현할 수 있는 다이나믹RAM인터페이스를 갖는 마이크로컴퓨터를 제공하는 것이다.
또, 본 발명의 다른 목적은 외부단자수의 증대를 극력 억제해서 상기 목적을 달성할 수 있는 마이크로컴퓨터를 제공하는 것이다.
본 발명의 상기 및 그외의 목적과 새로운 특징은 본 명세서의 기술 및 첨부도면에서 명확하게 될 것이다.
본원에서 개시되는 발명중 대표적인 것의 개요를 간단히 설명하면 다음과 같다.
(1) 다이나믹RAM을 마이크로컴퓨터에 직결할 수 있게 하기 위해 싱글칩 마이크로컴퓨터에는 다이나믹RAM을 위한 스트로브신호 출력단자가 마련된다. 또, 스테이틱RAM이나 그밖의 주변회로와의 직결을 위해 상기 스트로브신호 출력단자로 부터의 출력에 병행해서 칩셀렉트신호를 출력하기 위한 칩셀렉트신호 출력단자가 싱글칩 마이크로컴퓨터에 마련된다. 어드레스출력단자는 논 멀티플렉스 또는 필요에 따라서 멀티플렉스된 어드레스신호를 출력할 수 있게 된다. 또, 멀티버스방식의 인터페이스에 대응하기 위해 선택적으로 어드레스신호를 출력할 수 있는 데이타의 입출력단자가 싱글칩 마이크로컴퓨터에 채용된다.
(2) 상기 스트로브신호 출력단자에서 출력되는 스트로브신호로 다이나믹RAM에 지시할 수 있는 리프레시모드로써 캐스 비포 레스리프레시모드와 셀프 리프레시모드중 어느것인가를 선택할지 지정하기 위한 제어레지스터가 채용된다.
(3) 고속 페이지모드의 DRAM을 예를들면 동작주파수 16MHz의 1클럭단위로 고속액세스할 수 있게 하기 위해 상기 스트로브 신호 출력단자에서 출력되는 스트로브신호로써의 컬럼 어드레스 스트로브신호의 듀티비가 35%와 같은 40%이하의 값으로 된다. 또는 컬럼 어드레스 스트로브신호의 듀티비가 40% 이하와 50% 이하중 어느것인가로 하는지를 지정할 수 있게 된다.
(4) 출력해야할 데이타에 대해서 내장 패리티생성회로에서 생성된 패리티데이타의 출력단자와 외부에서 부여되는 패리티 데이타를 내장 패리티체크회로에 공급하기 위한 패리티데이타 입력단자가 마련된다.
(5) 싱글칩 마이크로컴퓨터의 관리가능한 리니어 어드레스공간이 영역마다 칩셀렉트신호를 할당할 수 있는 여러개의 영역으로 분할된다. 그리고, 소정의 영역에 대응되는 칩셀렉트신호를 상기 다이나믹RAM을 위한 스트로브신호와 멀티플렉스로써 출력하는 스트로브 신호 출력단자가 싱글칩 마이크로컴퓨터에 채용된다.
(6) 상기 영역내에 있어서의 데이타의 액세스단위 비트수 (예를 들면 8비트단위의 데이타의 액세스인지 16비트단위의 데이타의 액세스인지)가 액세스대상 어드레스신호에 포함되는 소정비트로 선택적으로 전환되도록 한다.
상기한 수단에 의하면 다음과 같은 작용을 얻을 수 있다.
(1) 다이나믹RAM을 위한 인터페이스와 스테이틱RAM등의 메모리 및 그밖의 주변회로를 위한 인터페이스를 마이크로컴퓨터에 채용하는 것은 필요한 시스템구축에 유연하게 대응할 수 있게 한다.
(2) 캐스 비포 레스 리프레시모드 대산에 선택적으로 셀프 리프레시모드를 지정할 수 있는 것은 배터리 백업모드와 같은 시스템의 저소비전력을 위한 동작모드에 최적한 다이나믹RAM리프레시 동작을 서포트가능하게 작용한다.
(3) 컬럼 어드레스 스트로브신호의 듀티비를 35%와 같은 40% 이하의 값으로 하는 것은 액세스시간 45ns의 고속 페이지모드를 서포트하는 다이나믹RAM을 예를들면 동작주파수 16MHz의 1클럭사이클단위로 액세스할 수 있게 작용한다.
(4) 다이나믹RAM의 패리티체크를 할 수 있는 기능을 내장하는 것은 하드 디스크 드라이브등에 고신뢰도가 요구되는 시스템으로의 싱글칩 마이크로컴퓨터의 대응을 용이하게 한다.
(5) 리니어어드레스공간을 각각에 칩셀렉트신호를 할당해서 여러개의 영역에 분할하고, 소정의 영역에 대응되는 칩셀렉트신호를 상기 다이나믹RAM을 위한 스트로브신호와 멀티플렉스로써 출력하는 것, 논 멀티플렉스 또는 필요에 따라서 멀티플렉스된 어드레스신호를 출력할 수 있는 어드레스신호 출력단자를 채용하는 것 및 선택적으로 어드레스신호를 출력할 수 있는 데이타의 입출력단자를 채용하는 것은 외부단자수의 증대를 극력 억제해서 마이크로컴퓨터의 상기 고기능화를 실현한다.
(6) 상기 영역내에 있어서의 데이타의 액세스단위 비트수(예를 들면 8비트단위의 액세스인지 16비트단위의 액세스인지)를 액세스대상 어드레스신호에 포함되는 소정의 비트로 선택적으로 전환하도록 하는 것은 1개의 영역중에 임의의 수의 8비트/16비트의 메모리를 혼재시켜서 이용할 수 있게 된다.
[실시예]
본 발명의 실시예 설명의 목차를 다음에 나타낸다. 다음의 실시예 설명은 그 목차의 순으로 설명된다.
1. 마이크로컴퓨터의 전체블럭도
2. 마이크로컴퓨터의 단자구성
3. 마이크로컴퓨터의 칩레이아우트
4. 버스스테이트 컨트롤러
5. 외부액세스버스 스테이트머신
6. 버스컨트롤러의 제어레지스터
7. 내부액세스버스 스테이트머신의 상태천이도
8. 외부액세스버스 스테이트머신의 상태천이도
9. 버스스테이트 컨트롤러의 동작
10. 마이크로컴퓨터 시스템
11. 외부액세스의 타이밍도
12. 스트로브생성을 위한 클럭생성(듀티보정)
13. 마이크로컴퓨터의 레지스터 및 데이타구성
14. 마이크로컴퓨터의 명령설명
[1/ 마이크로컴퓨터의 전체블럭도]
제1도 및 제2도에는 본 발명의 1실시예에 관한 마이크로컴퓨터가 상반부와 하반부로 분할되어 도시된다. 동일 도면에 도시되는 마이크로컴퓨터MCU는 중앙처리장치 (CPU) (1), CPU (1) 의 동작프로그램 등을 보유하는 리드온리메모리 (ROM) (2), CPU의 작업영역 또는 데이타의 일시기억영역으로 되는 랜덤액세스메모리 (RAM) (3), 다이렉트메모리액세스컨트롤러 (DMAC) (4) 및 주변회로를 구비하고, 그들이 내부버스에 결합되어 단결정 실리콘과 같은 1개의 반도체기판에 형성되어 이루어진다. 특히 제한되지 않지만 상기 주변회로로써 인터럽트 컨트롤러 (INT) (5), 버스스테이트컨트롤러 (6), 직렬통신인터페이스 (SCI) (7), 인터그레이티드 타이머펄스유닛 (ITU) (8), 타이밍패턴 컨트롤러 (9), A/D 컨버터(10), 워치독타이머 (WDT) (11), 그리고 칩의 외부와 인터페이스되는 입출력회로로써 단자기능이 겸용되는 포트A(12), 포트B(13), 포트C(14), 어드레스용 포트(15), (16) 및 데이타어드레스 겸용포트(17)이 마련되어 있다. 또, 제1도에 있어서, (18)은 클럭발생회로이다. 본 실시예의 마이크로컴퓨터에 있어서의 상기 내부버스는 32비트의 내부데이타버스 IDBO-31,24비트의 내부어드레스버스 IABO-23, 내장 주변회로용의 주변데이타버스 PDBO-15, 내장주변회로용의 주변어드레스버스PAB등을 포함한다.
[2. 마이크로컴퓨터의 단자구성]
제3도 및 제4도에서는 상기 마이크로컴퓨터의 칩을 패케이지한 상태에 있어서의 단자 (리드단자)의 배열 구성예가 도시된다. 동일 도면에 도시되는 신호명은 제1도 및 제2도에 도시되는 신호명에 대응된다.
여기에서, 우선 제1도∼제4도에 도시되는 신호 또는 단자의 주요한 것에 대해서 설명한다. Vcc는 시스템전원 (2.7∼5.5V)에 접속되고, Vss는 시스템전원 (OV)에 접속되는 전원단자, Vpp는 12.5V와 같은 프로그래머블ROM의 프로그램용 전원의 입력단자이다. 단자 EXTAL, XTAL 에는 수정발진자가 접속되고, 외부클럭을 입력하는 경우에는 단자 EXTAL에 입력된다. CK는 주변디바이스에 공급해야할 클럭신호의 출력단자이다. RES*(신호 또는 단자의 뒤에 붙여진*는 로우인에이블의 신호 또는 로우인에이블신호의 단자인 것을 의미한다. 또, 도면에서는 기호*대신에 해당 신호 또는 단자명위에 바, 즉 가로줄을 붙이고 있는 것이 있다)는 리세트신호이고, 후술하는 신호 NMI가 하이레벨일 때 로우레벨로 되면 파워온리세트상태로 되고, 또 신호MNI가 로우레벨일 때 로우레벨로 되면 매뉴얼리세트상태로 된다. WDTOVF*는 위치독타이머의 오버플로신호, BACK*는 버스권을 외부디바이스에 개방한 것을 나타내는 버스권 요구어크놀리지신호, MD0∼MD3은 모드신호, NMI*는 마이크불가능한 인터럽트요구인 논마스커블 인터럽트의 입력단자, IRQ0*∼IRQ7*은 인터럽트 요구 입력단자, IRQOUT*는 인터럽트요구가 발생한 것은 나타내는 슬레이브시 인터럽트요구 출력이다. A21-A0은 어드레스입출력단자이고, 버스권 획득시에는 어드레스를 출력하고, 버스권 개방시는 어드레스는 입력해서 내장 RAM을 액세스가능하게 한다. AD15-AD0은 16비트의 쌍방향 데이타단자이고, 어드레스의 하위 16비트와 멀티플렉스가능하게 되어 있다. DPH는 상위 8비트의 데이타에 대응되는 패리티데이타, DPL은 하위 8비트의 데이타에 대응되는 패리티데이타이다. WAIT*는 외부어드레스공간을 액세스 할 때 웨이트사이클을 삽입하는 웨이트신호, RAS*는 외부의 다이나 랜덤 액세스 메모리(DRAM)의 로우어드레스 스트로브의 타이밍신호(로우어드레스 스트로브타이밍신호), CASH*는 DRAM에 대해서 데이타의 상위 8비트를 액세스할 때 활성화되는 DRAM의 상위측 컬럼어드레스 스트로브의 타이밍신호 (상위측 컬럼어드레스 스트로브타이밍신호), CASL*는 DRAM에 대해서 데이타의 하위8비트를 액세스할 때 활성화되는 DRAM의 하위측 컬럼어드레스 스트로브의 타이밍신호(하위측 컬럼어드레스 스트로브타이밍신호)이다. RD*는 외부리드를 나타낸 리드신호, WRH*는 외부의 상위8비트로 라이트하는 것을 나타내는 상위측 라이트신호, WRL*은 외부의 하위 8비트로 라이트하는 것을 나타내는 하위측 라이트신호, CS0-CS7은 외부메모리 또는 외부디바이스의 축적의 칩셀렉트신호이다. AH*는 어드레스/데이타의 멀티플렉스버스를 사용하는 디바이스에 대한 어드레스홀드타이밍을 도시한 어드레스홀드신호, HBS*,LBS*는 상위 바이트 스트로브신호와 하위 바이트의 스트로브신호이다 (WRH*, A0과 겸용). WR*는 라이트시에 출력되는 라이트 신호이고, 상기 신호 WRL*과 겸용된다.
[3. 마이크로컴퓨터의 칩레이아우트]
제5도에는 본 실시예의 마이크로컴퓨터MCU에 있어서의 주요한 내장회로모듈의 레이아우트도가 도시된다. 동일 도면에 있어서, (18)은 승산회로(MULT)이고, 제1도 및 제2도에는 도시되어 있지 않다. 또, 제1도에서는 ROM(2)가 도시되어 있지만 제5도에 도시되는 마이크로컴퓨터MCU에 있어서는 상기 ROM(2)의 영역은 RAM(3)에 할당되어 있다. 마이크로컴퓨터MCU의 칩의 둘레가장자리부에는 다수의 본딩패드BP와 입력 또는 출력 또는 입출력용의 버퍼회로 BUFF가 각각의 본딩패드BP에 대응해서 배치되고, 그 안쪽에 상기 포트회로 (12)-(17)을 구성하는 포트회로(19)가 배치되고, 그 중앙부분에 CPU(1)등의 회로모듈이 레이아우트되어 있다. 제5도의 레이아우트에는 다음의 특징이 있다.
(a) A/D 컨버터(10)이 포트회로 (19)간에 배치되어 있다. 따라서, A/D 컨버터(10)의 입력은 본딩패드와 같은 외부단자에 가깝게 되고, 입력아날로그신호 파형의 왜곡 또는 가늘어짐을 미연에 방지할 수 있다.
(b) CPU(1)의 칩점유면적이 작다. 본 실시예에 따르면 CPU(1)은 RISC(Reduced Instruction Set Computer)아커택쳐를 갖는다. 예를들면 마이크로컴퓨터MCU의 칩면적이 10.4×10평방 미리미터인 것에 대해서 CPU(1)의 칩점유면적은 6.6평방 미리미터로 된다.
CPU(1)의 칩점유면적이 가능한한 작으면 ASIC (Application Specific Integrated Circuit)형식으로 마이크로컴퓨터의 품종을 전개하는 경우에 선택할 수 있는 주변 회로의 탑재량이 상대적으로 늦어질 수 있다.
(c) 승산회로(18)이 CPU(1)과는 다른 회로모듈로써 탑재되어 있다. 디지털신호처리 등이 필요없는 용도에 대해서 ASIC 에 의한 품종전개를 용이하게 실행할 수 있다.
(d) RAM(3)의 메모리매트간에 상기 RAM(3)과는 직접적으로 관계가 없는 신호배선이 통과하고 있다. 예를들면 메모리매트간의 영역(3A)는 포트회로에 이르는 내부버스가 배선된다. 이것에 의해 배선의 불필요한 배치를 적게할 수 있다.
(e) RAM의 4K 바이트분의 칩점유면적이 EPROM 64K 바이트분과 실질적으로 동일하게 되고, 그 선택에 칩레이아우트적인 제약을 받지 않게 미리 고려되어 있다.
(f) 인터그레이티드 타이머 펄스유닛(ITU) (8)에 있어서 8비트길이 레지스터군과 16비트길이 레지스터군은 각각 합쳐서 레이아우트되어 있다. 예를들면 제5도에 있어서, 8비트길이 레지스터군(8A)는 ITU(8)의 좌측의 영역에 배치되고, 16비트길이 레지스터군(8B)는 ITU(8)의 우측의 영역에 배치되고, 양자간에 타이머의 제어회로(8C)가 배치되어 있다. 따라서, 제어회로(8C)에서 쌍방의 레지스터군(8A), (8B)에 대한 제어신호의 배선을 정연하게, 또한 짧게 배치하는 것이 용이하게 된다. 16비트길이 레지스터와 8비트길이 레지스터를 혼재시켜서 레이아우트한 경우에는 제어신호의 배선경로가 복잡하게 될 염려가 있다.
[4. 버스스테이트 컨트롤러]
제6도에는 본 실시예의 마이크로컴퓨터에 있어서의 버스스테이트 컨트롤러(6)을 중심으로 한 블록도가 도시된다.
제6도에 있어서 IDB0-31은 32비트의 내부데이타버스, IAB0-23은 24비트의 내부어드레스버스, BCMD0-3은 4비트의 버스제어 커맨드버스이다. PDBO-15는 주변 액세스용의 데이타버스, 즉 16비트의 I/O(주변회로)용 버스이다. PAB는 주변액세스영의 어드레스버스이고, PDB, PAB는 주변회로액세스용 데이타버스, 어드레스버스를 제어하기 위한 제어신호이고, I/O액세스 제어신호는 주변회로를 액세스하기 위해 각 주변으로 보내지는 신호이다. ROM/RAM 액세스제어신호는 온칩에 탑재된 메모리인 ROM(2), RAM(3)을 액세스하기 위한 제어신호이다. 단자웨이트신호는 메모리웨이트 스테이트수를 외부단자로 제어할 수 있다. 이 때문에 사용하는 신호가 내부로 편입된다. 외부데이타/어드레스 제어신호는 외부데이타버스를 제어하는 신호이다. 외부 멀티플렉스 I/O를 액세스할때에는 데이타버스상에 어드레스가 탑재되는 경우가 있으므로, 이 명칭이 붙여져 있다. 스트로브제어신호는 메모리액세스, I/O 액세스에 필요한 제어신호를 생성하기 위해 필요한 제어신호를 전달하는 신호이다. Hit/Miss 신호는 DRAM의 후술하는 고속 페이지모드가 히트했는지 미스했는지를 전달하는 신호이다. 리프레시 요구신호는 리프레시카운터에서 리프레시를 하는 타이밍을 전달하기 위한 신호이다. RST신호는 리세트상태인지 통상상태인지를 나타내는 신호이다. RSTMP신호는 RST신호가 어서트된 경우에 매뉴얼리세트인지 파워온리세트인지를 나타내는 신호이다.
CPU(1)은 프로그램이나 인터럽트요구에 호응해서 자율적으로 동작해서 메모리액세스 요구를 발생시키는 버스마스터로써 위치가 정해진다. 24비트의 어드레스버스(출력)와 32비트의 데이타버스(입출력)이외에 4비트의 버스제어커맨드버스BCM0-3(출력)을 구비한다. 또, 버스스테이트 컨트롤러(6)에서 버스전송종료동기신호 BUSRDY 신호를 수취했을때는 대기스테이트로 들어간다. DMAC(4)는 DMA요구에 호응해서 자율적으로 동작해서 메모리액세스요구를 발생시키는 버스마스터로 된다. 24비트의 어드레스버스(출력)와 16비트의 데이타버스(입출력)이외에 4비트의 버스커맨드버스(출력)을 구비한다. 또, 버스스테이트머신(602)또는 (603)에서 OR게이트(604)를 거쳐서 버스전송종료 동기 신호 BUSRDY 신호를 수취해서 대기스테이트로 들어간다.
제6도에 있어서, 버스스테이트 컨트롤러(6)은 특히 제한되지 않지만 래치(600), 로우어드레스 비교기 (RACMP) (601), 외부액세스버스 스테이트머신(602), 내부액세스버스 스테이트머신(603), OR게이트(604), 래치(605), 하위비트 변환기 (606), 래치(607) 및 얼라이너(608)을 갖는다. 내부액세스버스 스테이트머신(603)은 칩내부의 메모리나 I/O (내장 메모리외의 주변회로를 총칭한다)를 액세스할 때 제어를 하는 신호를 생성하는 스테이트머신이고, 6개의 스테이트를 대기하고 10개의 상태천이로 이루어진다. 외부액세스버스 스테이트머신(602)는 칩외부의 메모리나 I/O를 액세스할 때 제어를 하는 신호를 생성하는 스테이트머신이고, DRAM스테이트머신, 버스사이즈 아버트레이션 스테이트머신, 외부웨이트생성 스테이트머신, 통상공간 액세스스테이트머신, 통상공간 액세스 서브스테이트플래그, I/OMUX 액세스스테이트머신으로 이루어지고, 이들 상태가 서로 얽혀 동작하도록 되어 있다. 스테이트머신에 있어서의 각 스테이트 및 상태천이에 대해서는 다음에 설명한다. 또, 버스스테이트 컨트롤러(6)의 제어동작의 기본상태는 상기 버스제어 커맨드버스BCMD0-3의 I/O요구커맨드에 따라서 결정된다. 제22도에는 I/O 요구커맨드의 할당예가 도시된다.
상기 로우어드레스 비교기(601)은 외부의 DRAM을 액세스할 때 전회의 DRAM을 액세스했을때와 같은 Row 번지(로우어드레스)에 속하는 번지를 액세스했는지를 판정하기 위한 메모리번지의 비교논리이다. 이 비교결과에 따라 고속페이지모드에서 DRAM을 액세스하는지 풀액세스를 실행하는지가 외부액세스 버스스테이트머신(602)에 의해서 결정된다. 여기에서, 상기 풀액세스라는 것은 프리차지, Row번지 (로우어드레스)의 출력, Column번지 (컬럼어드레스)의 출력을 잇달아 실행하는 것이다. 고속페이지모드라는 것은 RAS*를 어서트한채로 컬럼어드레스신호와 CAS*(CAL*, CASH*)를 연속적으로 변화시켜서 실행되는 DRAM액세스이다. 전회의 DRAM을 액세스했을때의 로우어드레스는 상기 래치(600)에 유지되어 있고, 로우어드레스 비교기(601)은 상기 래치(600)의 유지어드레스와 내부어드레스버스IAB0-23 에 탑재되어 있는 내부어드레스를 비교한다.
상기 얼라이너(608)은 내부데이타버스IDB로 부터의 내장메모리등으로의 라이트를 위한 데이타얼라인먼트를 실행하는 것이다.
이 얼라이너(608)의 입력에 출력이 접속된 데이타래치(607)은 16비트 내지는 32비트단위로 CPU(1)에서 보내져온 라이트데이타를 여기에서 1회 받아서 8비트 내지는 16비트단위로 내장주변회로로 라이트하는 기능을 실현한다. 상기 래치(605)는 내부어드레스버스IAB0-23의 동작과 주변어드레스버스 PAB의 버스동작간에 시간차가 있는 경우에 어드레스를 모아두는 스테이틱형의 어드레스래치기능을 실현하는 회로이다. 하위비트 변환기 (606)은 32비트 오퍼랜드는 16비트공간에서 액세스하는 경우, 16비트, 32비트 오퍼랜드를 8비트공간에서 액세스하는 경우에 CPU (1)은 1회밖에 어드레스를 생성하지 않으므로 각각의 워드 또는 바이트액세스에 따른 하위 어드레스를 생성하는 논리이다.
제6도에 도시되는 리프레시카운터(20)은 DRAM의 리프레시를 실행하는 타이밍을 생성하는 인터벌타이머이고, 그 내장레지스터의 설정상태에 따라서 인터벌을 변화시킬수 있다. 상기 I/O는 상술한 바와 같이 내장메모리를 제외한 내장의 주변기능을 갖는 회로모듈을 나타내고, 구체적으로는 인터럽트 컨트롤러, 버스스테이트 컨트롤러, 직렬통신 인터페이스, 비트인터그레이티드 타이머펄스유닛, 워치독타이머, A/D컨버터, 타이밍패턴 컨트롤러, 포트제어등으로 된다.
제6도에 있어서, (21)은 패리티생성 및 패리티체크논리이고, 메모리데이타의 패리티의 생성 및 패리티에러의 검출을 실행하는 논리블럭이다. 얼라이너(22)는 8비트의 외부메모리, 16비트의 외부메모리에서 8, 16, 32비트의 오퍼랜드를 리드하기 위한 오퍼랜드 얼라인먼트를 실행하는 것이다. 데이타래치(23)은 8비트 또는 16비트단위로 리드한 데이타를 1개로 합쳐서 16비트 또는 32비트 오퍼랜드로써 CPU(1)에 부여하기 위한 것이다. 따라서, 이들 래치는 스테이틱래치에 의한 스테이틱구성이 채용되어 있다. 예를들면 32비트 1워드의 스테이틱으로 구성된다. 또, 얼라이너(25)는 8비트의 외부메모리, 16비트의 외부메모리에 대해서 8, 16, 32 비트의 오퍼랜드를 라이트하기 위한 오퍼랜드 얼라인먼트를 실행하는 것이다. 이 얼라이너(25)의 입력에 출력이 접속된 데이타래치(26)은 16비트 내지는 32비트단위로 CPU(1)에서 보내져온 라이트데이타를 여기에서 1회 받아서 8비트 내지는 16비트로 외부로 라이트하는 기능을 실현한다. 상기 데이타래치(23)의 출력은 내부데이타버스 IDB0-31의 상위측 16비트에 결합되고, 상기 데이타래치(26)의 입력은 내부데이타버스IDB-31의 하위측 16비트에 결합된다. 어드레스레치(27) 및 하위비트변환기(28)은 내부어드레스버스IAB0-23상의 어드레스정보의 출력에 이용된다. 상기 얼라이너(25)의 데이타출력과 하위비트변환기(28)의 어드레스출력은 멀티플렉서(29)를 거쳐서 단자AD0-AD15에 부여된다.
각종 스트로브신호를 생성하기 위해 스트로브생성논리(30)이 마련되어 있다. 이 스트로브생성논리(30)은 외부에 접속하는 어드레스멀티플렉스방식의 DRAM, 어드레스논멀티플렉스방식의 ROM 및 스테이틱RAM(SRAM)등의 주변회로에 대해서 출력하는 여러 가지 스트로브신호를 상기 스트로브제어신호에 따라서 생성한다. 포트기능부(31)은 외부메모리 및 그밖의 주변회로 접속용의 스트로브와 포트기능을 멀티플렉스하기 위한 포트용의 논리가 마련되어 있다.
내부어드레스버스 IAB0-23에 접속되는 로우/컬럼어드레스 셀렉터(32)는 외부DRAM을 액세스할 때의 로우어드레스와 컬럼어드레스의 전환을 실행하는 기능을 실현하기 위한 논리이다. 어드레스래치(33)은 워프모드시의 라이트버퍼, 싱글사이클DMA, DRAM라이트등 내부버스동작과 외부버스동작간에 시간차가 있는 경우에 어드레스를 모아두는 스테이틱래치기능을 실현하는 회로이다. 하위 비트변환기(34)는 32비트 오퍼랜드는 16비트공간에서 액세스하는 경우, 16비트, 32비트 오퍼랜드는 8비트공간에서 액세스하는 경우에 CPU(1)은 1회밖에 어드레스를 생성하지 않으므로 각각의 워드 또는 바이트액세스에 따른 하위어드레스를 생성하는 논리이다. 상기 로우/컬럼어드레스셀렉터(32), 어드레스래치(33) 및 하위비트변환기(34)등은 외부액세스버스 스테이트머신(602)에서 출력되는 외부어드레스 제어신호로 제어된다. 리세트생성논리(35)는 외부단자의 상태에서 RST신호와 RSTMP신호를 생성해서 칩전체를 리세트하는 논리이다. 제6도에 있어서 상기 신호 RST, RSTMP는 외부액세스버스 스테이트머신(602)에만 공급되도록 도시되어 있지만 그것에 한정되는 것은 아니다.
[5. 외부액세스버스 스테이트머신]
제7도에는 외부액세스버스 스테이트머신(602)를 중심으로 한 버스스테이트 컨트롤러(6)의 더욱 상세한 1예의 블록도가 도시된다. 이 도면을 참조하면서 버스스테이트 컨트롤러(6)을 더욱 상세하게 기술한다.
제7도에 있어서, 버스스테이트 컨트롤러(6)은 디코더(6030), 디코더의 출력등을 받는 래치(6040), 제어레지스터BCR, WCR1, WCR2, WCR3, DDR, PCR, 조합논리(6050), (6060) 및 스테이트래치(6070), (6080)등을 구비한다. 상기 디코더(6030)은 BCMD0-3으로 부터의 I/O버스커맨드 및 어드레스신호의 소정의 비트를 디코드해서 외부버스액세스의 제어에 필요한 기본적인 정보를 취득한다. 예를들면 후술하는 영역분할된 어떤 영역이 액세스대상으로 되거나 I/O커맨드의 해독결과 및 로우어드레스 비교기(601)의 비교결과에 따르는 Hit/Miss 신호의 상태로 된다. 그 결과는 래치(6040)에 유지된다. 상기 제어레지스터VCR, WCR1, WCR2, WCR3, DCR, PCR 은 후술하는 바와 같이 버스스테이트 컨트롤러의 각종 기능설정을 위한 제어비트를 갖고, CPU (1)에 의해서 임의로 설정할 수 있게 된다. 조합논리(6050), (6060) 및 스테이트래치(6070), (6080)은 상기 래치(6040)에 유지된 정보, 상기 제어레지스터 BCR, WCR1, WCR2, WCR3, DCR, PCR 의 설정값, 리프레시카운터(20)의 출력 및 단자웨이트의 상태 등을 입력해서 외부액세스를 위한 스트로브신호 생성을 위한 각종 제어신호를 생성한다. 본 실시예에 따르면 그들 제어신호는 후술하는 상태(스테이트)의 천이에 따라 형성되고, 예를들면 조합논리 2단으로 되고, 전단의 조합논리의 출력에 의해서 얻어지는 스테이트를 소정의 타이밍에 동기해서(논오버랩 2상클럭신호 CK1 CK2에 동기하는 타이밍)스테이트래치(6070), (6080)로 래치하면서 귀환할 수 있도록 되어 있다. 이러한 버스컨트롤러(6)의 각 기능을 상세하게 다음에 계속해서 설명한다.
본 실시예의 마이크로컴퓨터MCU에 탑재되는 버스스테이트 컨트롤러(6)은 개략적으로 다음의 특징을 갖는다.
(1) 4MB의 리니어공간을 8개(8영역)서포트할 수 있다. 단, DRAM의 공간은 16MB로 된다.
(2) 온칩메모리를 32비트폭으로 1스테이트액세스할 수 있다.
(3) 영역마다 1개의 칩셀렉트신호와 그 영역의 종류에 따른 최적한 메모리인터페이스신호를 출력하고, 그루논리없이 DRAM, SRAM, 주변칩에 직결할 수 있다.
(4) DRAM직결 인터페이스를 갖고, 고속 전송을 서포트함과 동시에 호율이 좋은 리프레시제어(CAS-befrore-RAS리프레시방식)을 실현하고, 또 배터리백업모드라고도 불리우는 셀프리프레시모드(DRAM의 Icc=100μA)를 서포트해서 마이크로컴퓨터 단체 뿐만아니라 사용자시스템전체로써의 저소비전력화에 대응한다.
(5) I/O 로의 직결 인터페이스를 갖고, 어드레스/데이타멀티플렉스기능과 상기 어드레스홀드신호(AH*)를 서포트한다.
(6) 버스스테이트머신에 의한 외부액세스와 내부액세스의 독립동작(워프모드)를 서포트하고, 스토어버퍼(1단)에 의한 외부메모리·I/O 라이트와 내장메모리·I/O액세스의 병렬실행을 가능하게 하고, 또 사이클스틸싱글DMA전송과 CPU(1)에 의한 내장메모리·I/O 액세스의 병렬실행을 가능하게 한다.
(7) 패리티체크를 서포트하고, HDD(하드 디스크 드라이브)등에 고신뢰도가 요구되는 시스템에 대응할 수 있다.
본 실시예의 마이크로컴퓨터가 서포트하는 상기 8개의 각각 4MB의 리니어공간(영역0∼영역7)에 대한 어드레스맵은 상기 모드단자 MD3∼MD0의 상태에 따라서 결정된다. 예를들면 MD 핀으로써의 MD3, MD2, MD1, MD0=1010은 내장 ROM이 있는 통상모드이고, MD3, MD2, MD1, MD0=1000은 내장 ROM 없이 영역0의 버스폭을 8비트로 하는 모드이고, MD3, MD2, MD1, MD0=1001은 내장 ROM 없이 영역0의 버스폭을 16비트로 하는 모드이다. 상기 각 동작모드에 있어서의 각 영역의 어드레스맵의 1예가 제8도∼제21도에 도시된다. 이러한 어드레스맵에 있어서 어드레스는 16진수로 표시된다. 제8도∼제14도에 도시되는 0000000번지∼7FFFFFF번지의 범위에서 할당되는 영역0∼영역7과 제15도∼제21도에 도시되는 8000000번지∼FFFFFFF번지의 범위에서 할당되는 영역0∼영역7의 관계는 기본적으로 전자가 8비트공간에 대응되고, 후자가 16비트공간에 대응된다. 또, 각 영역의 최대공간 16MB에 대해서 전부의 공간을 사용하고 있지 않은 것은 그것에 대응되는 전체어드레스비트의 디코드가 실행되고 있지 않으므로 어드레스맵에는 외관상 섀도(shadow)인 관념적인 영역이 존재하게 된다. 또, 각각의 영역에 대응되는 칩셀렉트신호 CS1*∼CS7은 어드레스비트 A26∼A24를 디코드해서 출력되게 되어 있다. 버스폭8비트/16비트의 전환은 어드레스비트 27로 제어된다(영역0, 영역5∼영역7을 제외). 또, DON=0은 후술하는 DRAM인에이블비트(DRAM)=0에 대응되고, 영역1을 통상공간으로 하는 것을 의미하고 있다. DON=1은 DRAME=1에 대응되고, 영역1을 DRAM공간으로 하는 것을 의미한다.
본 실시예의 마이크로컴퓨터에 있어서의 액세스타입은 동작모드에 대응되는 상기 공간분할의 형태, 즉 액세스대상으로 되는 영역의 종별에 의해서 식별한다. 즉,(1) DRAM액세스, I/O 액세스는 특정한 영역에서 실행되도록 되어 있다. 소정의 제어비트 DON을 세트(0)하면 이들은 통상의 공간으로써 사용하는 것도 가능하게 된다. (2) 8비트/16비트액세스(8비트 버스폭/16비트버스폭)의 분별은 액세스어드레스의 소정의 비트A27로 실행한다. 이 방법에 의해서 1개의 영역중에 임의의 수의 8비트/16비트의 메모리를 혼재시켜서 이용하는 것도 가능하게 된다. DRAM 인터페이스로써는 어드레스멀티플렉스기능과 바이트제어기능을 구비한다. 즉, DRAM의 공간중에 로우어드레스를 출력하기 위한 어드레스멀티플렉스회로가 내장되어 있다. 이것은 제6도에 있어서의 로우/컬럼어드레스셀렉터(32)에 의해서 실현된다. 이때 대표적인 DRAM의 멀티플렉스규격에 대응하기 위해 8비트/9비트/10비트 멀티플렉스의 기능을 구비한다. 상기 바이트제어기능으로써는 16비트, 18비트의 DRAM을 직결했을때의 바이트제어신호로써 CAS2개 방식(CASL*, CASH*)과 WE2개 방식(WRH*, WRL*)중에서 어느것인가를 선택할 수 있다.
DRAM에 대한 프리차지사이클은 2종류중에서 어느것인가의 선택이 가능하게 된다. 이것은 CPU(1)의 클럭주파수가 올라가고, 1사이클이 기간이 짧아지면 DRAM의 프리차지기간을 확보할수 없게 되는 것이 예상되므로 프리차지사이클을 1사이클(1스테이트분)/2사이클(2스테이트분)에서 선택할 수 있게 되어 있다.
또, DRAM버스트모드를 서포트한다. DRAM액세스가 동일한 로우어드레스에 대해서 연속하는 경우에 DRAM의 버스트전송을 실행할 수 있도록 본 실시예의 마이크로컴퓨터는 DRAM의 로우어드레스의 비교회로를 구비한다. 이것은 제6도에 있어서의 로우어드레스 비교기(601)에 해당된다. DRAM영역내의 어드레스로의 액세스가 전회의 DRAM영역내의 액세스와 동일한 로우어드레스인 경우에는 버스트액세스(고속 페이지액세스)가 개시된다.
DRAM에 대한 버스트액세스방법은 다음의 2종류가 준비되어 있다.
(1) 짧은 피치의 고속페이지모드는 로우어드레스가 일치하고 있는 동안 컬럼 어드레스 스트로브신호 CASL*, CASH*를 1사이클에 1펄스씩 출력하는 모드이다. CPU(1)의 동작주파수에 대해서 메모리가 빠른 경우에 이 모드를 사용한다. 고속페이지모드서포트의 DRAM에서는 이 인터페이스를 사용할 수 있다. 리드, 라이트 모두 1사이클에서 DRAM액세스를 실행할 수 있다. 제35도에는 짧은 피치의 고속페이지모드에 있어서의 1예의 리드동작타이밍이 도시된다. 제36도에는 짧은 피치의 고속페이지모드에 있어서의 1예의 라이트동작 타이밍이 도시된다.
(2) 긴 피치의 고속페이지모드는 로우어드레스가 일치하고 있는 동안 컬럼 어드레스 스트로브신호 CASL*, CASH*를 CK(클럭)출력의 2배의 주기에서 출력하는 모드이다. DRAM의 액세스타임과 비교해서CPU(1)의 속도가 빠른 경우에 사용한다. 고속페이지모드 서포트의 DRAM에서 이 인터페이스를 사용할 수 있다. 리드, 라이트 모두 2사이클에서 DRAM액세스가 가능하게 된다. 제37도에는 긴 피치의 고속페이지모드에 있어서의 리드동작의 1예의 타이밍이 도시된다.
버스스테이트 컨트롤러(6)은 RAS다운웨이트와 RAS업웨이트기능을 갖는다. 명령만을 DRAM에 배치한 경우 비트율이 매우 높아지지만 DRAM공간내로의 액세스요구가 연속하는 지는 알 수 없으므로 DRAM의 로우어드레스스트로브신호 RAS*를 어서트한 상태에서 다음의 DRAM공간으로의 액세스를 기다리는 모드를 RAS 다운웨이트모드라 한다. 이 경우에는 DRAM공간으로의 액세스 동안에 다른 공간으로의 액세스가 들어와도 버스트전송을 이용할 수 있다. 사용자는 RAS다운웨이트모드와 RAS업웨이트모드를 사용자옵션으로 선택할 수 있다. RAS업모드에서는 DRAM의 액세스요구가 연속적으로 발생했을때만 버스트전송을 실행하게된다. RAS다운웨이트모드에서도 CAS-before-RAS리프레시가 끝난후 다음의 DRAM액세스요구가 올때까지 로우어드레스스트로브신호 RAS*는 네게이트상태 (하이레벨)로 된다.
버스스테이트 컨트롤러(6)은 DRAM의 셀프리레시모드를 갖는다. DRAM에서는 대기모드의 일종으로 DRAM 내부에서 리프레시타이밍, 리프레시어드레스를 생성하는 셀프리프레시모드를 갖는 일이 있다. DRAM은 컬럼어드레스스트로브신호, 로우어드레스스트로브신호를 특정의 시퀀스에서 로우레벨로 하는 것에 의해 셀프리프레시모드로 들어갈 수 있다. DRAM의 셀프리프레시모드시에 DRAM영역을 액세스하는 경우 셀프리프레시모드→풀액세스→셀프리프레시모드의 시퀀스에서 액세스를 실행한다. 액세스후는 자동적으로 셀프리프레시모드로 되돌아간다.
리프레시 컨트롤러는 DRAM을 CAS-before-RAS형식으로 리프레시를 실행한다. 리프레시간격이나 리프레시제어형식은 리프레시 컨트롤레지스터 (RCR)로 설정가능하게 된다.
버스스테이트 컨트롤러(6)은 DMA액세스시의 웨이트스테이트삽입 기능을 구비한다. 싱글사이클 전송의 DMA전송시의 늦은 I/O에 대한 액세스를 실현하기 위해 어떤 공간의 액세스스테이트수를 가장 늦은 I/O에 맞추지 않아도 가능하게 하는 기능으로써 DMA 싱글사이클에만 적용되는 웨이트스테이트 삽입기능이 있다.
버스스테이트 컨트롤러(6)은 대부분의 주변칩에 직접 인터페이스 할 수 있도록 어드레스를 데이타버스와 멀티플렉스하는 기능을 구비하고 있다. 멀티플렉스방식에 의해 버스사이클의 속도는 떨어져도 핀수는 절약할 수 있으므로 ASIC와의 인터페이스시에 ASIC측의 핀수를 절약할 수 있다. 이와 같은 I/O접속기능을 실현하기 위해 (1) 데이타버스에 어드레스를 멀티플렉스하는 인터페이스를 내장하고, (2) 어드레스홀드신호 (AH*단자)를 서포트하고, (3) RD*, WR*단자로 리드와 라이트의 인에이블을 독립적으로 서포트한다. 또, 버스사이클수는 리드, 라이트 모두 4사이클에서 버스컨트롤 레지스터WS비트, RS비트의 값에 관계없이 단자 웨이트삽입이 가능하다.
버스컨트롤러(6)은 워프모드(WArp Mode)를 서포트한다. 워프모드는 외부에 마련한 메모리사용시에 마이크로컴퓨터 및 DMAC를 최고속으로 동작시키는 모드이다. 워프모드에서는 일부의 버스사이클에 대해서 외부버스와 내부버스는 오버랩해서 동작한다(단, 내부버스1사이클은 소비된다). 버스제어레지스터(VCR)의 워프비트(WARP)를 세트하면 워프모드로 들어간다. 워프모드에서는 CPU(1)에 의한 내부 ROM/RAM, I/O 액세스와 외부의 다음 액세스를 오버랩해서 실행한다. 워프모드에 있어서 외부에 대한 라이트동작은 1단의 스토어버퍼를 관리하는 것에 의해서 실행된다. 외부메모리에 대한 싱글 DMA전송(사이클스틸모드시)에 관해서는 사이클스틸모드시 싱글DMA전송은 CPU(1)의 내부버스밴드폭을 1사이클밖에 소모하지 않는다. 그후 버스권은 DMAC에서 CPU(1)로 이동된다. 버스컨트롤 레지스터(BCR)의 워프비트(WARP)를 리세트하면 통상모드로 들어간다. 이후의 외부버스 오퍼레이션은 내부버스 오퍼레이션과 직렬로 실행된다.
[6. 버스컨트롤러의 제어레지스터]
상기 기능설정을 위한 제어레지스터로써 버스컨트롤레지스터BCR, 웨이트스테이트 제어레지스터WCR1, WCR2, WCR3, DMA 영역 컨트롤레지스터DCR, 패리티컨트롤레지스터PCR, 리프레시 컨트롤레지스터RCR, 리프레시타이머 컨트롤/스테이터스레지스터TRCSR, 리프레시타이머카운터RTCNT, 리프레시타임 콘스턴트레지스터RTCOR을 갖는다.
상기 버스컨트롤 레지스터BCR은 영역별 제어의 설정을 실행하는 것으로 그 유효비트는 5비트이고, 다음에 나타내는 비트로 된다.
(1) DRAM인에이블비트 (DRAME)
상기 비트는 영역1을 통상공간으로 해서 사용하는지 DRAM공간으로 해서 사용하는지를 선택하는 비트이다. 상기 비트는 1로 세트하면 상기 스트로브신호RAS*, CASL*, CASH*가 유효로 된다. 또, DRAM영역 컨트롤레지스터의 설정값은 본 비트가 1일때만 유효로 된다.
(2) I/O인에이블비트(10E)
상기 비트는 영역6에 대해서 어드레스멀티플렉스를 실행하는 I/O액세스사이클을 실시하는가 하지않는가를 결정한다. “0”으로 영역6을 통상공간으로 하고, “1”로 영역6을 I/O공간으로 한다.
(3) WARP모드의 온 오프제어비트 (WARP)
상기 비트는 “0”으로 노말모드, “1”로 워프모드를 유효로 한다. 노말모드에서는 외부버스와 내부버스의 동작은 일체이다. 워프모드에서는 외부버스액세스와 내부버스액세스를 병렬로 실행할 수 있는 경우(외부에 대한 CPU, DMA라이트동작, 사이클스틸·싱글DMA전송)에는 1사이클만 소비한후에 외부버스액세스의 종료를 기다리지 않고 내부버스액세스를 실행하고 외부버스액세스와 겹쳐서 내부버스액세스를 실행한다.
(4) 라이트사이클후의 데드사이클 삽입제어비트 (DEAD)
상기 비트는 “0”으로 데드사이클을 삽입하지 않고, “1”로 데드사이클을 삽입한다. 외부라이트사이클의 다음의 사이클을 항상 1사이클 데드사이클로 하는지 하지않는지를 선택하는 비트이고, 데드 사이클을 삽입으로 하면 외부라이트의 다음의 버스사이클이 통상공간의 리드액세스인 경우에 데이타의 충돌을 피할 수 있다.
(5) 바이트액세스 셀렉트비트 (BAS)
상기 비트는 워드공간 액세스시에 WRH*, WRL*, A0 신호에 의한 제어를 실행하는지 WR*, HBS*, LBS* 신호에 의한 제어를 실행하는지를 선택하는 비트이고, 본 비트를 “1”로 세트하면 WRH*, WRL*, A0 단자를 각각 WR*, HBS*, LBS* 스트로브로써 사용할 수 있다.
상기 웨이트스테이트 제어레지스터WCR1은 유효비트수가 16비트로 되고, 리드시 웨이트스테이트관리를 실행하는 8비트RW7∼RW0과 라이트시 웨이트스테이트관리를 실행하는 8비트WW7∼WW0이 있다.
(1) RW필드는 각 영역(상기 4MB단위의 8영역) 에 대응해서 1비트씩 존재한다. 각각의 공간으로의 리드에 대해서 최소 스테이트수로 전송을 실행하는지 하지않는지를 결정하는 플래그로써 위치가 정해진다. 최소스테이트수로 전송을 실행하는 경우에는 외부웨이트단자는 샘플되지 않는다. 최소스테이트수보다 큰 스테이트수로 전송을 실행하는 경우에는 외부웨이트단자가 샘플되고, 로우가 검출된 경우에는 웨이트스테이트가 삽입된다. 일부의 공간에는 긴 웨이트스테이트 삽입기능이 있고, 외부단자와의 논리OR에 의해 웨이트스테이트가 삽입된다. 단, I/O공간에 대해서는 본비트의 설정에 관계없이 리드/라이트4사이클에서 외부웨이트단자를 샘플한다. 또, DRAM공간의 버스사이클수, 웨이트삽입가능/불가능은 DRAM영역 컨트롤레지스터의 BM비트의 설정값에 의해서 결정되고, 본 비트의 설정값에는 의존하지 않게 되어 있다. RW7∼RW0은 “0”에서 샘플하지 않고 (1웨이트스테이트고정), “1”에서 샘플하는(2웨이트 이트이상)것으로 된다.
(2) WW필드는 각 영역에 대응해서 1비트씩 존재한다.
각각의 공간으로의 라이트에 대해서 최소스테이트수로 전송을 실행하는지 하지않는지를 결정하는 플래그로써 위치가 정해진다. 최소 스테이트수로 전송을 실행하는 경우에는 외부웨이트단자는 샘플되지 않는다. 최소스테이트수보다 큰 스테이트수로 전송을 실행하는 경우에는 외부웨이트단자는 샘플되고, 로우레벨이 검출된 경우에는 웨이스트스테이트가 삽입된다. 일부의 공간에는 긴웨이트스테이트 삽입기능이 있고, 외부단자와의 논리 OR에 의해 웨이트스테이트가 삽입된다. 단, I/O공간에 대해서는 본 비트의 설정에 관계없이 리드/라이트4사이클에서 외부웨이트단자를 샘플한다. 또, DRAM공간의 버스사이클수, 웨이트삽입가능/불가능은 DRAM영역 컨트롤 레지스터의 BM비트의 설정값에 의해서 결정되고 본 비트의 설정값에는 의존하지 않는다. WW7∼WW0은 “0”에서 샘플하지 않고 (1웨이트스테이트고정), “1”에서 샘플한다 (2웨이트스테이트 이상).
상기 웨이트스테이트 제어레지스터 WCR은 유효비트수가 16비트이고, DRW7∼DRW0과 DWW7∼DWW0으로 된다.
(1) DWR7∼DWR0은 DMA싱글전송시만 웨이트삽입(DMA싱글사이클·메모리리드)하는지 하지않는지를 지정하는 비트로 되고, “0”은 하지않고 “1”은 하는 것을 의미한다. 즉, DRW필드는 각 영역에 1비트씩 존재한다. 각각의 영역으로의 싱글 DMA메모리리드 사이클에 대해서 최소스테이트수로 전송을 실행하는지 하지않는지를 결정하는 플래그이다. 최소스테이트수로 전송을 실행하는 경우에는 외부웨이트단자는 샘플되고, 로우레벨이 검출된 경우에는 웨이트스테이트가 삽입된다. 일부의 공간에는 긴웨이트스테이트삽입 기능이 있고, 외부단자와의 논리OR로 웨이트스테이트가 삽입된다. 단, I/O공간에 대해서는 본 비트의 설정에 관계없이 리드/라이트4사이클에서 외부웨이트단자를 샘플한다. 또, DRAM공간의 버스사이클수, 웨이트삽입 가능/불가능은 DRAM영역 컨트롤레지스터의 BM비트의 설정값에 의해서 결정되고, 본 비트의 설정값에는 의존하지 않는다.
(2) DWW7∼DWW0 은 DMA싱글전송시만 웨이트삽입(DMA싱글사이클·메모리라이트)하는지 하지않는지를 결정하는 비트로 되고, “0”은 하지 않고, “1”은 하는 것을 의미한다. 즉, DWW 필드는 각 영역에 1비트씩 존재한다. 각각의 영역으로의 싱글DMA메모리 라이트사이클에 대해서 최소스테이트수로 전송을 실행하는지 실행하지 않는지를 결정하는 플래그이다. 최소스테이트수로 전송을 실행하는 경우에 외부웨이트단자는 샘플되지 않는다. 최소스테이트수보다 큰 스테이트수로 전송을 실행하는 경우에는 외부웨이트단자는 샘플되고, 로우레벨이 검출된 경우에는 웨이트스테이트가 삽입된다. 일부의 공간에는 긴웨이트스테이트삽입 기능이 있고, 외부단자와의 논리OR로 웨이트스테이트가 삽입된다. 단, I/O공간에 대해서는 본 비트의 설정에 관계없이 리드/라이트4사이클에서 외부웨이트단자를 샘플한다. 또, DRAM공간의 버스사이클수, 웨이트삽입가능/불가능은 DRAM영역 컨트롤레지스터의 BM비트의 설정값에 의해서 결정되고, 본 비트의 설정값에는 의존하지 않는다. 상기 웨이트스테이트 제어레지스터WCR3은 유효비트수가 5비트이고 각 비트의 내용은 다음과 같다.
(1) WPU비트는 웨이트단자의 풀업 제어용비트이고, “0”으로 웨이트단자 풀업하지않는 것을, “1”로 웨이트단자 풀업하는 것을 지시한다.
(2) A02LW0, A02LW1은 영역0, 2의 긴웨이트삽입을 제어하는 비트이고, 그 2비트에 의해서 표시되는 값이 “0”일때는 1사이클삽입 “1”일때는 2사이클삽입, “2”일때는 3사이클 삽입, “3”일때는 4사이클삽입을 지시한다.
(3) A6LW0, A6LW1은 영역6의 긴웨이트삽입을 제어하는 2비트이고, 그 2비트에 의해서 표시되는 값이 “0”일때는 1사이클삽입, “1”일때는 2사이클삽입, “2”일때는 3사이클삽입, “3”일때는 4사이클삽입을 지시한다.
상기 DRAM영역컨트롤 레지스터DCR은 DRAM영역의 스테이트 머신등의 제어를 실행하는 것으로 유효비트수는 8비트이다. 각 비트의 내용은 다음에 나타낸다.
(1) CW2 비트
상기 비트는 CAS2개방식/WE2개방식의 선택비트이고, “0”으로 CAS2개방식이 선택되고, “1”로 WE2개방식이 선택된다. 제어방식이 다른 DRAM에 대한 대응을 선택할 수 있다. CAS2개방식의 경우는 CASH*, CASL*단자와 WR1L*단자가 사용된다. 또, WE2개방식의 경우에는 CASL*단자와 WRH*, WRL*단자가 사용된다. 데이타버스폭8비트공간의 경우는 WR1L*단자, CASL*단자만 사용된다.
(2) RASD 비트
상기 비트는 액세스웨이트시의 RAS다운을 실행하는지 하지않는지를 지시하는 비트이고 “0”은 하지 않는 것을, “1”은 하는 것을 지시한다. DRAM에 대한 액세스가 중단된 경우에 RAS*를 내린 상태로 해서 다음의 DRAM액세스를 기다리는지 하지않는지를 결정하게 된다.
(3) TPV 비트
상기 비트는 프리차지사이클(Tp 사이클)수를 지시하는 비트이고, “0”은 1스테이트 “1”은 2스테이트를 지시한다. 이것에 의해 느린 DRAM에 대해서 빠른 클럭수로 CPU(1)을 동작하게 한 경우에 1사이클에서는 프리차지타이밍이 충분하지 않은 경우가 있고, 그때 삽입해야할 프리차지사이클수를 결정한다.
(4) BE 비트
상기 비트는 버스트동작 인에이블비트이고, “0”은 버스트동작을 실행하지 않는 것을, “1”은 버스트동작을 실행하는 것을 지시한다. 이것에 의해서 버스트동작을 실행하는지 실행하지않는지가 선택되고, 실행하지 않는 것으로 설정되면 로우어드레스는 항상 미스히트하고, BM비트에 설정한 모드의 풀액세스를 매회 실행하고, 실행하는 것으로 설정하면 로우어드레스의 비교를 실행하여 BM비트에 지정한 모드에 따라서 버스트동작을 실행한다.
(5) BM 비트
상기 비트는 버스트동작 옵션비트이고, “0”은 긴 피치/고속페이지모드(2states, 외부단자웨이트샘플)를 지정하고, “1”은 짧은 피치/고속페이지모드(1state)를 지시한다. 버스트동작 옵션은 CPU(1)의 동작주파수의 DRAM의 속도의 관계에 의해 최적의 버스트액세스방법을 셀렉트하기 위한 필드이다. 긴 피치/고속페이지모드의 경우에는 외부웨이트스테이트단자를 샘플한다.
(6) MXE 비트
상기 비트는 멀티플렉스 있음/없음을 지시하기 위한 비트이고, “0”은 없음, “1”은 있음을 의미한다. DRAM액세스의 경우에 멀티플렉스가 실행되는지 하지않는지가 결정된다.
(7) MXC1, MXC0비트
상기 비트는 로우어드레스 멀티플렉스시의 시프트카운트의 제어비트이고, 버스트시의 로우어드레스 비교기의 전환도 제어한다. 그 지정내용은 해당 2비트의 값에 의해서 3종류로 된다. 즉, “0”일 때 로우어드레스시프트량은 8비트, 비교대상 로우어드레스 (버스트시)는 A8∼A27 이 지정되고, “1”일 때 로우어드레스 시프트량은 9비트, 비교대상 로우어드레스(버스트시)는 A9∼A27이 지정되고, “2”일 때 로우어드레스 시프트량은 10비트, 비교대상 로우어드레스(버스트시)는 A10∼A27이 지정된다. 또, 값이 “3”일때는 로우어드레스를 출력할때에 몇비트 낮은쪽으로 시프트해서 출력하는지가 결정된다.
패리티 컨트롤레지스터 PCR은 패리티체크의 제어를 실행하는 것으로써 유효비트수는 다음의 3비트로 된다.
(1) PFRC비트는 패리티 강제출력하는지 하지않는지를 지시하는 것으로써, “0”은 강제출력하지 않는 것을, “1”은 “H”레벨(하이레벨)을 강제출력하는 것을 지시한다. 이것은 패리티에러 체크기능의 테스팅을 위한 패리티강제출력기능이다.
(2) PEO비트는 패리티극성의 지정비트이고, “0”은 이븐, “1”은 오드를 의미한다.
(3) PCHK비트는 패리티체크 인에이블비트이고, 패리티체크를 실행하는지 실행하지않는지를 결정한다.
상기 리프레시 컨트롤레지스터RCR은 리프레시관련의 제어를 실행하기 위한 제어레지스터로써, 다음의 제어비트를 갖는다.
(1) RFSHE비트는 DRAM리프레시동작을 실행하는지 하지않는지를 결정하는 비트이고, 상기 비트를 “0(리프레시동작을 실행하지 않음)”으로 설정하면 후술하는 리프레시요구 주기발생 타이머를 인터벌타이머로써 사용할 수 있다.
(2) RMODE는 “0”으로 CAS before RAS(CBR)리프레시모드를 지시하고, “1”로 셀프리프레시모드를 지시한다.
상기 RFSH비트가 “1”인 경우 RMODE비트를 1로 세트하면 그 직후에 셀프리프레시모드로 들어간다. 0으로 세트하면 CBR리프레시가 8비트 인터벌타이머로 설정한 간격으로 실행된다. CBR리프레시는 외부라이트사이클중 및 DRAM영역 액세스중에 요구가 발생한 경우 그 버스사이클 종료후 리프레시를 실행한다. DRAM영역이외의 외부리드사이클중 및 내장모듈 액세스사이클중에 리프레시요구가 발생한 경우는 버스사이클에 관계없이 리프레시를 실행한다.
셀프리프레시에 세트한 경우는 외부 DRAM액세스사이클중이 아니면 RMODE비트를 세트한 직후에 셀프리프레시모드로 들어간다. 외부DRAM액세스중인 경우는 DRAM액세스가 종료하고나서 셀프리프레시모드로 들어간다. 또, 셀프리프레시중도 리프레시 요구카운터는 동작하고 있지만, 또, 셀프리프레시중도 리프레시 요구카운터는 동작하고 있지만, 셀프리프레시기간중의 리프레시요구는 전부 무시된다.
리프레시요구 주기발생용 타이머는 8비트 인터벌타이머를 사용한다. 이때, 메모리의 리프레시요구주기 및 CPU의 동작주파수에 맞춰서 설정값을 설정할 필요가 있다. 그 때문에 필요로 되는 리프레시 요구주기 발생용 타이머의 레지스터구성은 다음과 같이 된다.
리프레시타이머 컨트롤/스테이터스레지스터(RTCSR)
상기 레지스터 RTCSR은 리드/라이트가능한 8비트의 레지스터이고, RTCNT에 입력하는 클럭의 선택 및 인터럽트요구의 제어를 실행하는 것으로 유효비트는 다음의 5비트로 된다.
(1) 컴페어매치플래그 CMF
RTCNT와 RTCOR 의 값이 일치한 것을 나타내는 스테이터스 플래그이고, 다음의 조건으로 세트/클리어된다.
클리어조건은 CMF=1인 상태에서 CMF를 리드한후 DMF로 “0”을 라이트했을때이다.
세트조건은 RTCNT=RTCOR로 되었을때이다.
(2) 컴페어매치 인터럽트인에이블 CMIE
RTCSR의 CMF가 1로 세트되었을 때 CMF에 의한 인터럽트 요구(CMI)의 허가 또는 금지를 선택한다.
(3) 클럭셀렉트비트 CKS2∼CKS0
리드/라이트가능한 레지스터이고 TCNT의 입력클럭의 선택을 다음과 같이 실행한다.
CKS2, CKS1, CKS0=0, 0, 0에서 클럭입력금지
CKS2, CKS1, CKS0=0, 1, 1에서 ψ/2
CKS2, CKS1, CKS0=0, 1, 0에서 ψ/8
CKS2, CKS1, CKS0=0, 1, 1에서 ψ/32
CKS2, CKS1, CKS0=1, 0, 0에서 ψ/128
CKS2, CKS1, CKS0=1, 0, 1에서 ψ/512
CKS2, CKS1, CKS0=1, 1, 0에서 ψ/2048
CKS2, CKS1, CKS0=1, 1, 1에서 ψ/4096
리프레시 타이머 카운터 RTCNT
상기 카운터 RTNCT는 업카운터이고, 입력한 클럭에 의해 카운터업된다. 입력하는 클럭의 선택은 RTCSR의 클럭셀렉트 2∼0비트(CKS2∼CKS0)로 실행한다. RTNCT의 값은 CPU(1)에서 항상 리드/라이트가능하게 되어 있다. 리프레시 타이머 카운터 RTNCT가 RTCOR 과 일치하면 RTCNT는 클리어된다. RTCNT는 파워온리세트에 의해 H′00(H′는 16진수를 의미한다)으로 이니셜라이즈된다.
리프레시 타임 콘스탄트 레지스터RTCOR
상기 RTCOR 은 8비트의 리드/라이트가능한 레지스터이다.
RTOCR과 RTCNT의 값은 항상 비교되고 있고, 양쪽의 값이 일치하면 RTCSR 의 컴페어 매치 플래그 (CMF)가 세트되고, RTCNT가 H′00으로 클리어된다. 또, RCR의 RFSH비트가 1로 설정되어 있는 경우는 이 일치신호에 의해 리프레시요구신호가 발생된다. 리프레시타임 콘스탄스레지스터RTOCR은 파워 온리세트에 의해서 H′00으로 이니셜라이즈된다.
상기 레지스터RCR, RTCSR, RCNT, RTCOR 의 각 레지스터는 데이타유지상 리프레시동작의 중요성을 감안해서 용이하게 리라이트되지 않도록 라이트방법이 일반적인 레지스터와 다르다. 라이트는 다음의 순서로 실행할 수 있다.
(1) PCR 라이트시
워드전송명령을 사용해서 상위8비트에 H′5A를, 하위8비트에 라이트데이타를 배치한다.
(2) PTCSR 라이트시
워드전송명령을 사용해서 상위8비트에 h′A5를, 하위8비트에 라이트데이타를 배치한다.
(3) PCNT 라이트시
워드전송명령을 사용해서 상위8비트에 h′69를, 하위8비트에 라이트데이타를 배치한다.
(4) PTCOR 라이트시
워드전송명령을 사용해서 상위8비트에 H′96를, 하위8비트에 라이트데이타를 배치한다.
또, 리드시는 일반적인 레지스터와 마찬가지로 리드할 수 있다. 리드의 경우는 바이트전송명령을 사용할 수 있다. 또, 워드로 리드한 경우의 상위8비트의 값은 H′00으로 된다.
[7. 내부액세스 버스 스테이트머신의 상태천이도]
제23도에서는 상기 내부액세스 버스스테이트머신(603)의 상태천이도가 도시된다. 동일 도면에는 대표적인 상태로써, T1E (010), T2E(011), T3E(000), T3O(100), T1O(110), T2O(111)이 도시된다. 각 상태는 액세스상태코드(BiBSC0∼BiBSC2)등의 제어신호를 받는 것에 의해서 결정되고, 그 상태에 따르는 처리의 종료후는 다음 액세스상태코드가 생성되어 상태가 천이된다. 제23도에 있어서의 각 상태명이 붙여진 3비트가 상기 액세스상태코드이다. 액세스상태코드등의 제어신호는 커맨드버스BCMD0-3의 값이나 어드레스버스 IAB0-23의 값등에 따라서 결정된다. 제24도∼제27도에는 액세스 상태코드(BiBSC0∼BiBSC2)와 다음 액세스상태코드(BiNBC0∼BiNBC2) 및 그것에 대응하는 처리가 도시된다. 예를들면 제24도에 있어서 신호 RST가 어서트되면 파워온리세트상태로 되어 다음 액세스상태가 T3E로 되는 것을 알 수 있다.
[8. 외부액세스 버스스테이트머신의 상태천이도]
제28도에는 외부액세스버스 스테이트머신(602)에 포함되는 DRAM스테이트머신의 상태천이도가 도시된다. 각 상태는 다음에 표시되는 바와 같다.
(1) dP(DRAM, PRECHARGE STATE)
이 상태는 프리차지상태를 나타낸다. RAS*, CAS*(CASL*, CASH*)모두 하이레벨의 네게이트상태에 있다. 어드레스선, CS*, RD*, WR*, 데이타선은 이 상태일때에도 액티브일수 있다. 왜냐하면 DRAM이외의 메모리액세스가 일어날 수 있기 때문이다.
(2) dP X(DRAM PRECHARGE EXTRA STATE)
프리차지상태를 나타낸다. 단, 이 스테이트는 DRAM의 프리차지기간을 확보하기 위한 스테이트이다. dP로 가기전에 이 스테이트를 통과하는 것에 의해 프리차지기간을 2사이클(100ns 20MH일때)확보할 수 있다. 이것은 각종 DRAM에 적용할 수 있는 충분한 값이다.
(3) dR(DRAM ROW ADDRESS STATE)
DRAM의 액세스에 있어서의 로우어드레스를 부여하는 스테이트이다. 스테이트 전반에서 로우어드레스를 부여하는 스테이트이다. 스테이트 전반에서 로우어드레스를 출력하고, 후반도 같은 어드레스를 계속 어서트한다. 스테이트후반에서 RAS*를 어서트한다. 이때에 RD*, WR*등의 메모리제어신호, 데이타버스의 어서트등은 일체 실행하지 않는다. 본 스테이트는 단지 로우어드레스를 부여하지 위해서만 존재한다. 유일한 예외는 CBR리프레시인 경우인 DBR리프레시시에는 dR스테이트의 선두부터 CAS* (이하, CAS로 CASL*, CASH*를 총칭한다)가 어서트되고, dR, dC, dCx 로 계속 어서트된다.
(4) dC(DRAM CLOLMN ADDRESS STATE)
DRAM의 액세스에 있어서의 컬럼어드레스를 부여하는 스테이트이다. 짧은 피치모드일때에는 본 스테이트에서만 1버스트액세스가 완수한다. 사이클 후반이 CAS*가 어스트되고 네게이트된다. CAS*단자의 출력버퍼는 다른 출력버퍼에 비해서 강화되어 있고, 하프사이클에서 어서트→네게이트를 실행할 수 있다. 짧은 피치모드인 경우는 dC 사이클의 선두에서 RD*단자 및 WR*단자를 어서트하고, 사이클종료까지 어서트를 계속한다. 짧은 피치일때에는 웨이트단자의 샘플링은 하지않는다.
긴 피치일때에는 dC사이클로 오기전에 반드시 dCx사이클로 가므로 WR*과 RD*는 어서트한 상태에서 dC사이클에 도달한다. 긴 피치일때에 웨이트단자는 dCx사이클의 종료에서 샘플된다. 웨이트를 샘플하지 않았던 경우에는 사이클중반에서 WR*단자가 끌어올려진다(네게이트된다). RD*단자는 사이클종료까지 어서트된다. 웨이트를 샘플한 경우에는 WR*단자도 RD*단자도 어서트한 상태에서 dC사이클이 반복된다. 긴 피치일때에는 dC사이클중은 항상 CAS*는 계속 어서트된다. 리프레시사이클시에는 WR*단자도 RD*단자도 어서트되지 않는다. 배터리백업 모드시에는 이 스테이트에 고정된다.
(5) dCX(DRAM COLUMN EXTRA ADDRESS STARE)
DRAM의 액세스에 있어서의 컬럼어드레스를 부여하는 스테이트이다. 짧은 피치모드에서는 본 스테이트에는 도달하지 않는다. 긴 피치모드시의 최초의 사이클이 이 스테이트로 된다. RD*단자는 사이클의 처음부터, WD*단자는 사이클중반부터 어서트된다. 리프레시사이클시에는 RD*단자도 WR*단자도 어서트되지 않는다.
(6) dI(DRAM IDLE STATE)
DRAM액세스시에 RAS다운웨이트를 실현하는 스테이트이다. 이 스테이트는 CBR리프레시에는 도달하지 않는다. 이 스테이트에서는 CAS*, RAS*, WR*, RD*단자 전부가 네게이트된 상태로 된다.
제29도에는 외부액세스버스 스테이트머신(602)에 포함되는 버스사이즈 아버트레이션 스테이트머신의 상태천이도가 도시된다.
각 상태는 다음에 기술한 바와 같다.
(1) xI(EXTERNAL BUS IDLE STATE)
이 상태는 본 실시예의 마이크로컴퓨터에 내장한 CPU(1) 또는 DMAC(4)가 버스마스터이지만 외부버스를 사용한 액세스는 실행되지 않는다. 가령 다른 메모리에 대한 액세스가 실행되어 있지 않으면 DRAM의 RAS다운상태도 이것에 해당한다.
(2) xRC(EXTERNAL BUS RESCIND STATE)
본 실시예의 마이크로컴퓨터MCU가 버스아버트레이션의 결과 버스권을 개방할 때 이 스테이트를 통과한다. 이유는 제어신호를 하이임피던로 하기 전에 1회 하이레벨로 하는 것을 내부 논리로 실행하기 때문이다. 이것에 의해 풀업저항의 전류값을 내릴 수 있다. 소프트웨어 대기시에도 본 스테이트를 통과한다.
(3) xG(EXTERNAL BUS GRANT STATE1)
본 실시예의 마이크로컴퓨터MCU가 버스를 개방한 상태를 만드는 스테이트이다. 동시에 소프트웨어 대기시에도 이 스테이트로 된다. 이 스테이트시에는 모든 어드레스핀, 데이타핀은 하이임피던스로 되고, RAS*, CAS*, RD*,WR*, AH*등의 제어신호는 전부 하이임피던스로 된다.
(4) xS1(EXTERNAL BUS STATE1)
32비트 오퍼랜드는 8비트공간에 리드/라이트할 때 최초에 도달하는 스테이트이다. 어드레스의 하위2비트 {A0, A1}는 {0, 0}을 출력한다. 이 액세스의 오퍼레이션이 계속되는한은 본 스테이트를 반복한다.
(5) xS2(EXTERNAL BUS STATE2)
32비트 오퍼랜드를 8비트공간에 리드/라이트할 때 2개째의 바이트를 액세스할 때 도달하는 스테이트이다. 어드레스의 하위2비트는 A1=0, A0=1을 출력한다. 이 2바이트째의 액세스가 계속되는한은 본 스테이트를 반복한다.
(6) xS3(EXTERNAL BUS STATE3)
32비트 오퍼랜드를 8비트공간에 리드/라이트할 때 3개째의 바이트를 액세스할 때 본 스테이트에 도달한다. 어드레스의 하위2비트는 A1=1, A0=0을 출력한다.
16비트 오퍼랜드를 8비트공간에 리드/라이트할 때 1개째의 바이트를 액세스할 때 본 스테이트에 도달한다. 어드레스의 하위2비트는 A1=X, A0=0을 출력한다.
32비트 오퍼랜드를 16비트공간에 리드/라이트할 때 1개째의 워드를 액세스할 때 본 스테이트에 도달한다. 어드레스의 하위2비트는 A1=0, A0=0을 출력한다.
각 어드레스가 계속되는한은 본 스테이트를 반복한다.
(7) xS4(EXTERNAL BUS STATE4)
32비트 오퍼랜드는 8비트공간에 리드/라이트할 때 4개째의 바이트를 액세스할 때 본 스테이트에 도달한다. 어드레스의 하위2비트는 A1=1, A0=1을 출력한다.
16비트 오퍼랜드를 8비트공간에 리드/라이트할 때 2개째의 바이트를 액세스할 때 본 스테이트에 도달한다. 어드레스의 하위2비트는 A1=X, A0=1을 출력한다.
32비트 오퍼랜드는 16비트공간에 리드/리드라이트할 때 2개째의 워드를 액세스할 때 본 스테이트에 도달한다. 어드레스의 하위2비트는 A1=1, A0=0을 출력한다.
제30도에는 외부액세스버스 스테이트머신 (602)에 포함되는 외부웨이트생성 스테이트머신의 상태천이도가 도시된다. 웨이트스테이트가 삽입되는 국면은
(a) SRAM의 2스테이트액세스에 있어서 2스테이드째(sL스테이트)가 반복된다.
(b) SRAM의 긴 피치액세스에 있어서 컬럼어드레스의 2스테이트째(dC스테이트)가 반복된다.
(c) I/OMPX액세스에 있어서 I/O액세스의 최후에서 2스테이트째(pD1스테이트)가 반복되는 3종류이다.
상기의 반복되는 스테이트를 NAND 반복시키는가를 결정하는 것이 외부웨이트 생성스테이트머신이다. 다음에 외부웨이트 생성스테이트머신의 각 스테이트를 설명한다. 본 스테이트머신은 내부어드레스버스의 값을 디코드한 결과를 유지해두는 기능도 겸해서 구비하고 있다.
(1) wTHR(WAIT THREE STATE)
3스테이트의 웨이트스테이트를 삽입할 때 최초에 도달하는 스테이트이다. 이 스테이트는 외부액세스용의 스테이트머신이 웨이트스테이트를 받는 사이클에 도달할때까지 반복한다. 외부액세스용의 스테이트머신이 웨이트스테이트를 받아서 반복하는 사이클에 들어오면 비로소 카운트를 시작하고 wTHR→wTWO→wONE→wNW와 같이 그 사이클을 반복한다. 결과로써 기본으로 되는 사이클에 3개의 웨이트스테이트가 삽입된다.
(2) wTWO(WAIT TWO STATE)
2웨이트스테이트를 각 외부액세스사이클내에 삽입할 때 메모리액세스의 최초에 도달하는 스테이트이다. 2웨이트스테이트의 공간에 액세스했을때는 외부액세스용의 스테이트머신이 웨이트스테이트를 받아서 반복하는 사이클에 들어갈때까지 wTWO 스테이트에서 반복한다. 외부 액세스용의 스테이트머신이 웨이트스테이트를 받는 스테이트에 들어가면 비로소 카운트를 시작하고, wTWO→wONE→wNW와 같이 반복사이클을 3회 반복한다. 결과로써 기본으로 되는 스테이트수에 2개의 웨이트스테이트가 삽입된다. 2웨이트스테이트를 넘는 웨이트스테이트인 3웨이트스테이트가 삽입되는 경우에도 본 스테이트를 통과한다. 이때에는 본 스테이트가 반복되는 일은 없다.
(3) wONE(WAIT ONE STATE)
1웨이트스테이트를 각 외부액세스사이클에 삽입할 때 메모리액세스의 최초에서 도달하는 스테이트이다. 1웨이트스테이트를 삽입하는 공간에 액세스했을때는 외부액세스용의 스테이트머신이 웨이트스테이트를 받는 사이클에 도달할때까지는 wONE스테이트를 반복한다. 외부액세스용 스테이트머신이 웨이트스테이트를 받는 사이클에 도달하는 사이클에 들어가면 비로소 카운트를 시작하고 wONE→wNW와 같이 반복해야할 외부액세스용 스테이트를 2회 반복한다. 결과로써 기본으로 되는 외부액세스에 대해서 1개의 웨이트스테이트가 삽입된다. 1웨이트스테이트를 넘는 웨이트스테이트를 삽입할 때에는 본 스테이트를 통과하지만 이때에는 wONE는 1회통과할뿐이며, 반복되는 일은 없다.
(4) wNW(WAIT NO WAIT STATE)
본 스테이트는 ① 외부액세스사이클을 실행하고 있지 않은 경우, ② 외부버스액세스가 실행중이지만 삽입웨이트스테이트가 불필요한 경우, ③ 외부버스액세스를 실행하는 경우로 웨이트스테이트삽입시에 반복되는 버스사이클의 최후의 사이클을 실행하는 경우에 도달한다. 리세트의 경우에는 우선 이스테이트에 도달한다.
제31도에는 외부액세스버스 스테이트머신(602)에 포함되는 통상공간 액세스스테이트머신의 상태천이도가 도시된다. 통상공간 액세스스테이트머신은 통상공간의 액세스가 실행되었을 때 바른 신호선의 레벨을 올리거나 내려서 바른 타이밍에서 데이타를 래치(리드시)또는 어서트(라이트시)할 수 있게 하기 위한 기구이다. 상기 통상공간 액세스스테이트머신은 sI(유휴), sF(First Cycle), sL(Last Cycle)의 3개의 스테이트로 이루어지고, 이들은 리드액세스시에도 라이트액세스시에도 공용되어 있다. 또, 1사이클 액세스시에는 sL만으로 종료하고, 2사이클 액세스인 경우에는 sF→sL로 액세스가 종료한다. 본 스테이트머신의 특색으로써 매우 많은 상태를 1개의 스테이트에 집약하고 있는 점이 있고, 이 의미로는 1개의 스테이트에 대해서 여러 가지 제어선의 상태가 존재한다. 다음에 나타내는스테이트의 설명에 있어서는 가능한한 이들의 제어선의 상태를 전부 기술한다.
(1) sI(SRAM IDLE STATE)
상기 상태sI는 유휴상태이다. 외부 액세스를 하고 있지 않은 경우 다른 DRAM이나 I/OMPX주변을 액세스하는 경우에 본 스테이트에 도달, 또는 계속 존재한다. 또, 리세트시에도 본 스테이트에 먼저 도달한다.
(2) sF(SRAM FIRST STATE)
SRAM의 2사이클액세스시에 최초의 사이클에서 도달하는 스테이트이다. 이 사이클에서는 사이클의 처음(ψ상승시)에 RD*가 내려가고, 사이클중간(ψ하강시)에 WR*가 내려가고 데이타출력을 시작한다. CS*는 I/OMUX공간과 공용의 단자 (현재는 CS5*)에 대해서는 사이클중간에서의 어서트로 되지만 그것이외의 단자는 사이클처음부터 어드레스디코드결과에 따른 어서트로 된다. 리드/라이트에 의해 RD*, WR*, 데이타선의 취급이 다르다. sF사이클의 끝에서 래치된 외부단자의 상태에서 sF사이클의 다음의 sL사이클의 다음에 sL사이클이 반복되는지가 결정된다.
(3) sL(SRAM LAST STATE)
통상 공간을 액세스해서 1사이클공간일때와 2사이클이상의 공간일때에 동작이 다르므로 이들에 따라서 설명을 실행한다.
1사이클 통상공간의 액세스시에 sL은 반드시 1사이클만 실행되고, 외부단자, 내부웨이트스테이트는 샘플하지 않고 반드시 1사이클에서 다음의 사이클로 옮긴다. 1사이클리드시에는 사이클의 처음(ψ상승)에서 RD*가 어서트되어 어드레스가 갱신되고, 사이클종료시(ψ하강)에 데이타가 래치되어 RD*4가 네게이트된다. 1사이클라이트시에는 사이클의 처음(ψ상승)에 어드레스 갱신되고, 사이클의 중간(ψ하강)에 WR*가 어서트되고 데이타선의 어서트가 시작된다. 사이클종료시(ψ상승)에 WR*가 네게이트된다.
2사이클이상의 통상공간 액세스시에는 앞에 샘플된 외부웨이트단자의 값과 내부웨이트의 설정에 따라 sL스테이트는 반복될 가능성이 있다. 이때에는 통상공간 액세스스테이트머신은 반드시 sF스테이트로 앞서 가고, sL스테이트로 온다. 리드사이클에 있어서 어드레스는 sF스테이트에서 어서트하기 시작한 값을 유지한다. CS*, RD*도 계속 어서트된다. sL스테이트의 반복이 끝났을때에만 CS*, RD*가 상승되어 어드레스가 갱신되게 된다. 이것을 최후의 sL사이클의 끝에서 실행된다. 라이트사이클의 경우도 sF사이클에서 어서트된 어드레스를 sL사이클이 반복되는한 유지한다. CS*, WR*에 대해서는 sF사이클에서 어서트된채 어서트를 실행한다. sL사이클의 최후의 반복의 사이클의 중간에서 WR*는 네게이트되고, 사이클의 마지막에 CS*는 네게이트된다.
sL사이클의 정의는 애매하므로 이들 애매함을 해소하기 위해서 통상공간의 sL의 구별을 위해 통상공간 서브스테이트플래그가 존재 한다. 이것에 대해서는 다음에 기술한다.
제32도에는 외부액세스버그 스테이트머신(602)에 포함되는 통상공간 서브스테이트플래그의 상태천이도가 도시된다. 통상공간의 스테이트머신의 스테이트sL은 1사이클 액세스가 연속해서 발생했을 때에도 웨이트스테이트가 삽입되어 있을때에도 어느 경우에도 sL이 연속해서 발생하게 된다. 이것을 분별하는 것이 본 스테이트머신의 목적이다.
(1) sS(SRAM SINGLE CYCLE ACCESS STATE)
sS스테이트는 통상공간액세스 스테이트머신이 INACTIVE일 때(구체적으로는 sI스테이트시),통상공간 액세스 스테이트머신이 1사이클공간에 있을 때(sL스테이트시에서 1사이클공간)무엇인가 하나의 적합한 경우에 도달한다.
(2) SM(SRAM MULTIPLE CYCLE ACCESS STATE)
SM스테이트는 복수사이클액세스에 도달한다.
제33도에는 I/OMUX액세스스테이트머신의 상태천이도가 도시된다.
(1) pA1(PERIPHERAL ADDRESS STATE1)
pA1스테이트는 MPXI/O공간을 액세스했을 때 최초에 도달하는 스테이트이다. 이 스테이트에서는 사이클중간에 AH*단자가 네게이트되어 데이타버스에 어드레스가 탑재된다. CS*는 내려가지 않는다. 이 사이클은 리드의 경우에도 라이트의 경우에도 공통이다.
(2) pA2(PERIPHERAL ADDRESS STATE2)
pA2스테이트는 MPXI/O공간을 액세스했을때에 2사이클째에 도달하는 스테이트이다. 이 스테이트에서는 사이클중간에 AH단자가 내려간다. 데이타버스상에는 본 사이클중에 계속 어드레스가 탑재된다. CS*단자는 본 사이클중반에 내려간다.
(3) pD1(PERIPHERAL DATA STATE1)
pD1스테이트는 MPXI/O공간을 액세스했을 때 3사이클째에 도달하는 스테이트이다. 리드의 경우는 이 스테이트의 처음에 RD*단자가 어서트되고, 데이타버스는 하이임피던스로 된다. 라이트의 경우는 이 스테이트의 처음에 데이타버스상으로 데이타를 출력하고, 스테이트중반에 WR*단자를 어서트한다. pD1스테이트는 웨이트단자가 pA2의 최후에 어서트되어 있거나 내부웨이트 스테이트컨트롤러가 웨이트스테이트 삽입을 지정하고 있던 경우에는 반복된다. 예를들면 3개의 웨이트스테이트가 삽입되는 경우에는
→pA1→pA2→pD1→pD1→pD1→pD2→…
라는 순서로 상태가 천이된다. 상태 pA2에 이어지는 pD1에 서는 WR*의 어서트는 스테이트중반에 실행되지만 그후의 각 상태 pD1, pD1, pD1에서는 스테이트의 처음부터 끝날때까지 계속 어서트된 상태이다. 데이타도 유지된다. 리드의 경우는 pD1의 반복이 있었던 경우는 그 최후의 pD1사이클의 끝에서 데이타를 래치한다.
(4) pD2(PERIPHERAL DATA STATE2)
pD2스테이트는 MPXI/O공간을 액세스했을 때 최후의 사이클을 구성하는 스테이트이다. 리드의 경우는 사이클의 처음에 RD*단자가 네게이트되고, 사이클의 중반에 CS*단자가 네게이트된다. 라이트의 경우는 사이클동안 계속 데이타버스상에서는 데이타가 유지된다. 또, WR*단자는 사이클중반에서 네게이트된다.
(5) pI(PERIPHERAL IDLE STATE)
pI스테이트는 주변칩의 액세스가 유휴상태인 스테이트를 구성한다. RD*단자, AH*단자, CS*단자는 전부네게이트상태로 된다.
[9. 버스스테이트 컨트롤러의 동작]
다음에 본 실시예의 마이크로컴퓨터 MCU의 주요한 동작을 버스스테이트 컨트롤러에 착안해서 설명한다.
(1) 리세트시의 동작
사용자시스템이 NMI*단자를 네게이트하면서 RES*를 어서트하면 마이크로컨트롤러는 파워온리세트처리를 실행한다. 사용자 시스템이 NMI*를 어서트하면서 RES*를 어서트하면 매뉴얼리세트 처리를 실행한다. 이들 처리는 리세트 생성논리가 RES신호와 RSTMP신호를 사용해서 마이크로컴퓨터내의 각 모듈에 전달한다. CPU(1), 리프레시카운터(35), DMAC(4), I/O, 포트, 외부액세스버스 스테이트머신(602), 내부액세스버스 스테이트머신(603)이 리세트상태로 된다. 리세트상태로 되면 실행도중의 처리는 모두 중단되어 리세트상태로 된다. 리세트상태에는 마이크로컴퓨터에 접속된 주변칩이나 DRAM, RAM, ROM 등에 대한 버스오퍼레이션은 불활성상태로 된다. 파워온리세트의 경우에는 즉시 불활성상태로 되고, 버스오퍼레이션을 도중에 중지하는 일은 없다. 매뉴얼리세트의 경우에는 실행중 또는 펜딩으로 되어 있는 버스오퍼레이션을 최후까지 끝낸후에 리세트상태로 들어간다.
(2) 파워온리세트시의 버스스테이트머신의 동작을 설명한다.
내부버스스테이트머신(603)은 그 전에 어떤 상태에 있더라도 파워온리세트시에는 즉시 T3E스테이트로 천이한다. 외부버스액세스 스테이트머신(602)의 스테이트는 파워리세트시에 다음과 같이 천이한다. DRAM스테이트머신은 dpx스테이트(DRAM PRECHARGE EXTRA STATE)로, 버스사이즈/아버트레이션 스테이트머신은 xI스테이트(EXTERNAL BUS IDLE STATE)로, 외부웨이트생성 스테이트머신은 wNW스테이트(WAit No Wait State)로, 통상공간 액세스 스테이트머신은 sI스테이트(SRAM IDLE State)로, 통상공간 액세스 서브스테이트플래그는 sS스테이트(SRAM Single Cycle Access State)로, I/OMUX액세스 스테이트머신은 pI스테이트(Peripheral Idle State)로 천이한다.
(3) 매뉴얼리세트시의 버스스테이트머신의 동작을 설명한다. 매뉴얼리세트시에 버스스테이트머신은 실행중의 버스오퍼레이션을 최후까지 실행한다. 그러나, 신규의 버스액세스요구는 무시한다. 그러나, 새로운 버스요구가 없으면 매뉴얼리세트시에는 외부웨이트단자의 내용은 무시하므로 유한의 시간이 경과한 후에 스테이트머신은 파워온리세트시와 같은 스테이트에 도달한다. 내부액세스버스 스테이트머신(603)은 그 전에 어떤 상태에 있어라도 파워온리세트시에는 즉시 T3E스테이트로 천이한다. 외부액세스버스 스테이트머신(602)의 스테이트는 파워온리세트시에 다음과 같이 천이한다. DRAM스테이트머신은 dPx스테이트(DRAM Precharge Extra State)로, 버스사이즈/아버트레이션 스테이트머신은 xI스테이트(External Bus Idle State)로, 외부웨이트생성 스테이트머신은 wNW스테이트(WAit No Wait State)로, 통상공간 액세스 스테이트머신은 sI스테이트(SRAM Idle State)로, 통상공간 액세스 서브스테이트플래그는 sS스테이트(SRAM Single Cycle Access State)로, I/OMUX액세스 스테이트머신은 pI스테이트(Peripheral Idle State)로 천이한다.
(4) DRAM공간으로의 리드동작
CPU(1) 또는 DMAC(4)가 DRAM공간으로의 리드동작을 실행한 경우에 어떤 동작이 실행되는지를 설명한다. CPU(1) 또는 DMAC(4)는 버스스테이트 컨트롤러(6)에 대해서 BCMD0-3을 사용해서 I/O요구 커맨드를 보낸다. I/O요구 커맨드의 할당예는 제22도에 도시된다.
예를들면 CPU(1)이 Ox1234560이라는 번지에서 32비트의 오퍼랜드를 리드하고자 할때 CPU(1)은 IAB0-23에 Ox1234560이라는 수치와 버스 BCMD0-3에 {0111}이라는 값을 탑재한다.
상기의 어드레스버스IAB0-23의 수치와 버스BCMD0-3의 내용에 따라 내부버스액세스 스테이트머신(603)은 다음의 처리(a)를 실행한다.
(a) 어드레스버스IAB0-23상의 어드레스가 Ox1234560이므로 내부버스액세스 스테이트머신(603)은 어드레스디코드처리를 실행하고 내부액세스가 아닌 것을 판정한다. 내부액세스가 아닌 것이 판정되면 T3E스테이트를 반복한다.
상기의 어드레스버스IAB0-23의 수치와 버스BCMD0-3의 내용에 따라 외부버스액세스 스테이트머신(602)는 다음에 나타낸 처리(a)∼(f)를 실행한다.
(a) 어드레스버스IAB0-23상의 어드레스가 Ox1234560이므로 외부액세스버스 스테이트머신(602)는 어드레스디코드처리를 실행하고 DRAM영역에 액세스를 실행한 것을 판정한다. 내부액세스가 아닌 것이 판정되면 T3E스테이트를 반복한다.
(b) 리세트해제후 dpx스테이트에서 Pxp천이를 거쳐서 dP스테이트에 이른다. DMAC(4)는 리세트되면 인액티브로 된다. CPU(1)은 리세트직후는 벡터페치를 실행하므로 최초의 수사이클은 DRAM영역을 액세스하지 않을 것이다. 처음의 DRAM액세스를 할 때까지 DRAM스테이트머신은 dP스테이트에 머무르므로 처음의 DRAM영역 액세스의 경우는 반드시 dP스테이트(DRAM Precharge State)에서 dR스테이트(DRAM Row Access State)로 천이한다.
(c) dR스테이트에서는 다음의 처리를 실행한다. 로우어드레스 비교기(601)의 래치(600)으로 로우어드레스를 래치한다. 스테이트 전반에서 로우/컬럼어드레스셀렉터(32)로 로우어드레스를 선택해서 로우어드레스를 어드레스 하위부로 출력한다(dR스테이트이외의 스테이트에서는 반드시 로우/컬럼어드레스셀렉터(32)는 컬럼 어드레스를 선택해서 컬럼어드레스를 어드레스 하위부로 출력한다). dR스테이트후반에서는 로우어드레스스트로브신호RAS*가 어서트된다.
(d) dR스테이트이후 DRAM액세스의 설정이 짧은 비트인 경우에는 dC스테이트(DRAM Column Address State)로, 긴 피치일때에는 dCx스테이트(DRAM Column Address Extra State)로 천이한다.
(e) DRAM액세스의 설정이 짧은 피치일때에는 dC스테이트에 도달한다. dC스테이트에서는 사이클후반에 컬럼어드레스스트로브신호CASL* 또는 CASH*를 어서트하고, 그후에 네게이트한다. 네게이트하기 직전에 데이타버스AD0-15의 값을 래치한다. 다음의 액세스가 DRAM으로 향하고 있지 않은 경우에는 dC스테이트에서 dI스테이트(DRAM Idle State)로 천이한다. 다음의 액세스가 DRAM으로 향하고 있는 경우는 현재의 로우어드레스와 래치된 어드레스를 비교한다. 비교한 결과 로우어드레스가 일치한 경우에는 dC스테이트에서 dC스테이트로 천이한다. 비교한 결과 로우어드레스가 불일치한 경우에는 dC스테이트에서 dPx스테이트 또는 dP스테이트로 천이한다. 프리차지사이클을 2사이클삽입하는 설정으로 되어 있는 경우에는 dPx스테이트로 천이해서 또 dP스테이트로 천이한후 dR스테이트에 이른다. 그후는 (c)∼(f)의 처리를 반복한다.
(f) DRAM액세스의 설정이 긴 피치일때는 dCx스테이트에 도달한다. dCx스테이트에서는 컬럼어드레스 스트로브신호CASL* 또는 CAS2를 네게이트한채로 dC스테이트로 천이한다. dC스테이트에서는 사이클 전반에서 컬럼어드레스 스트로브신호CASL* 또는 CAS2를 어서트하고, 사이클끝에서 네게이트한다. 네게이트하기 직전에 데이타버스Ad0-15의 값을 래치한다. 다음의 액세스가 DRAM으로 향하고 있지 않은 경우에는 dC스테이트에서 dI스테이트(DRAM Idle State)로 천이한다. 다음의 액세스가 DRAM으로 향하고 있는 경우에는 현재의 로우어드레스와 래치된 어드레스를 비교한다. 비교한 결과 로우어드레스가 일치한 경우에는 dC스테이트에서 dC스테이트로 천이한다. 비교한결과 로우어드레스가 불일치한 경우에는 dC스테이트에서 dPx스테이트 또는 dP스테이트로 천이한다. 프리차지사이클을 2사이클 삽입하는 설정으로 되어 있는 경우에는 dPx스테이트로 천이해서 또 dP스테이트로 천이한후에 dR스테이트에 이른다. 그후는 (c)∼(f)의 처리를 반복하게 된다.
(5) DRAM공간으로의 라이트동작
CPU(1) 또는 DMAC(4)가 DRAM공간으로의 라이트동작을 실행한 경우에 어떤 동작으로 되는지를 설명한다. CPU(1) 또는 DMAC(4)는 버스스테이트 컨트롤러(6)에 대해서 버스BCM0-3을 사용해서 I/O요구 커맨드를 보낸다. I/O요구 커맨드의 할당예는 제22도에 도시된다. 예를들면 CPU(1)이 Ox1234560이라는 번지에 32비트의 오퍼랜드를 라이트하고자 한 것으로 하면 CPU(1)은 어드레스버스IAB0-23에 Ox1234560이라는 수치와 버스BCMD0-3에 {0011}이라는 값을 탑재한다. 상기의 어드레스버스IAB0-23의 수치와 버스BCMD0-3의 내용에 따라 내부액세스 버스스테이트머신(603)은 다음의 처리를 실행한다.
(a) 어드레스버스IAB0-23상의 어드레스가 Ox1234560이므로 외부액세스버스 스테이트머신(603)는 어드레스디코드처리를 실행하고 DRAM영역에 액세스를 실행한 것을 판정한다.
(b) 리세트해제후 dpx스테이트에서 PxP천이를 거쳐서 dP스테이트에 이른다. DMAC(4)는 리세트되면 인액티브로 된다. CPU(1)은 리세트직후는 벡터페치를 실행하므로 최초의 수사이클은 DRAM영역을 액세스하지 않는다. 처음의 DRAM액세스를 할 때까지 DRAM스테이트머신은 dP스테이트에 머무르므로 처음의 DRAM영역 액세스의 경우는 반드시 dP스테이트(DRAM Precharge State)에서 dR스테이트(DRAM Row Access State)로 천이한다.
(c) dR스테이트에서는 다음의 처리를 실행한다. 로우어드레스 비교기(601)의 래치(600)으로 로우어드레스를 래치한다. 스테이트 전반에서 로우/컬럼어드레스셀렉터(32)로 로우어드레스를 선택해서 로우어드레스를 어드레스 하위부로 출력한다(dR스테이트이외의 스테이트에서는 반드시 로우/컬럼어드레스셀렉터(32)는 컬럼 어드레스를 선택해서 컬럼어드레스를 어드레스 하위부로 출력한다). dR스테이트후반에서는 로우어드레스스트로브신호RAS*가 어서트된다. DRAM액세스방법이 짧은 피치설정이고 다음의 액세스요구가 라이트인 경우에는 CPU(1)에 BUSRDY신호가 이 사이클로 되돌려진다. CPU(1)은 다음의 액세스를 개시한다.
(d) dR스테이트이후 DRAM액세스의 설정이 짧은 비트인 경우에는 dC스테이트(DRAM Column Address State)로, 긴 피치일때에는 dCx스테이트(DRAM Column Address Extra State)로 천이한다.
(e) DRAM액세스의 설정이 짧은 피치일때에는 dC스테이트에 도달한다. dC스테이트에서는 사이클후반에 컬럼어드레스 스트로브신호CAS1* 또는 CAS2*가 어서트되어 네게이트된다. 네게이트되기 직전에 데이타버스adb-15의 값을 래치한다. 다음의 액세스가 DRAM으로 향하고 있지 않은 경우에는 dC스테이트에서 dI스테이트(DRAM Idle State)로 천이한다. 다음의 액세스가 DRAM으로 향하고 있는 경우는 현재의 로우어드레스와 래치된 어드레스를 비교한다. 비교한 결과 로우어드레스가 일치한 경우에는 dC스테이트에서 dC스테이트로 천이한다. 비교한 결과 로우어드레스가 불일치한 경우에는 dC스테이트에서 dPx스테이트 또는 dP스테이트로 천이한다. 프리차지사이클을 2사이클 삽입하는 설정으로 되어 있는 경우에는 dPx스테이트로 천이해서 또 dP스테이트로 천이한후 dR스테이트에 이른다. 그후는 (c)∼(f)의 처리를 반복한다.
(f) DRAM액세스의 설정이 긴 피치일때는 dCx스테이트에 도달한다. dCx스테이트에서는 컬럼어드레스 스트로브신호CASL* 또는 CAS2를 네게이트한채로 dC스테이트로 천이한다. 사이클전반에서 라이트신호WR*가 네게이트된다. 그후에 dC스테이트로 천이하지만 dC스테이트에서는 사이클전반에 컬럼어드레스스트로브신호CASL* 또는 CASH*를 어서트하고 사이클끝에서 네게이트한다. 네게이트하기 직전에 데이타버스Ad0-15의 값을 래치한다. 라이트신호WR*는 dCx스테이트전반에서 어서트하고 dC스테이트후반에서 네게이트한다. 다음의 액세스가 DRAM으로 향하고 있지 않은 경우에는 dC스테이트에서 dI스테이트(DRAM Idle State)로 천이한다. 다음의 액세스가 DRAM으로 향하고 있는 경우에는 현재의 로우어드레스와 래치된 어드레스를 비교한다. 비교한 결과 로우어드레스가 일치한 경우에는 dC스테이트에서 dC스테이트로 천이한다. 비교한결과 로우어드레스가 불일치한 경우에는 dC스테이트에서 dPx스테이트 또는 dP스테이트로 천이한다. 프리차지사이클을 2사이클 삽입하는 설정으로 되어 있는 경우에는 dPx스테이트로 천이해서 또 dP스테이트로 천이한후에 dR스테이트에 이른다. 그후는 (c)∼(f)의 처리를 반복하게 된다.
(6) 긴 워드를 바이트공간이 라이트하는 처리
상기 (4), (5)에서 설명한 메모리액세스는 Ox1234560번지라는 바이트영역에 대해서 실행된 긴워드액세스이므로 32비트의 긴워드를 4회로 나누어서 메모리로 라이트하는 동작이 필요하게 된다. 이 제어를 담당하는 것이 버스사이즈/아버트레이션 스테이트머신이다. 긴워드액세스가 바이트공간에 실행된 것을 디코드하면 xS1스테이트(External Bus State1)로 천이한다. xS2스테이트에서는 하위2비트는 A0=0, A1=0이 출력된다. 메모리액세스가 종료할때까지 xS1스테이트에 잔류해서 종료함과 동시에 xS2스테이트(External Bus State2)로 천이한다. xS2스테이트에서는 하위2비트는 A0=1, A1=0이 출력된다. 메모리액세스가 종료할때까지 xS2스테이트에 잔류해서 종료함과 동시에 xS3스테이트(External Bus State3)로 천이한다. xS3스테이트에서는 하위2비트는 A0=0, A1=1이 출력된다. 메모리액세스가 종료할때까지, xS3스테이트에 잔류해서 종료함과 동시에 xS4스테이트(External Bus State4)로 천이한다. xS4스테이트에서는 하위2비트는 A0=1, A1=1이 출력된다.
[10. 마이크로컴퓨터시스템]
제34도에서 본 실시예의 마이크로컴퓨터MUC를 적용한 1예의 시스템구성도가 도시된다. 본 실시예의 마이크로컴퓨터MCU에는 18비트구성의 SRAM(40)과 함께 18비트구성의 DRAM(41)이 직결되고, 또 광자기디스크드라이브용의 데이타엔코더/디코더 및 에러정정용 주변칩(42), SCSI인터페이스의 광자기 디스크 컨트롤러칩(43) 및 아날로그디바이스(44)가 결합되어 있다.
[11. 외부액세스의 타이밍도]
제35도∼제43도에는 외부의 DRAM에 대한 액세스의 타이밍도가 도시된다. 그들 도면에 있어서의 CAS*의 듀티는 50%와 같이 도시되어 있지만 실제로는 후술하는 35%라도 좋다. 도면에 있어서, Tp는 프리차지동작 스테이트, Tr은 로우어드레스의 공급동작스테이트, Tc는 컬럼어드레스의 공급동작스테이트이다. 제35도에는 짧은 피치의 고속페이지모드에 의한 리드동작 타이밍이 도시되고, 제36도에는 짧은 피치의 고속페이지모드에 의한 라이트동작타이밍이 도시된다. 도면에서 명확한 바와 같이 CAS*는 마이크로컴퓨터MCU의 동작클럭ψ의 사이클마다 변화된다. 이것에 대해서 긴피치의 고속페이지모드에 의한 리드동작 타이밍이 도시된 제37도에서는 CAS*의 1사이클은 클럭ψ의 2사이클에 대응되어 있다.
제38도에는 CBR리프레시를 위한 스트로브신호의 타이밍이 도시되고, 제39도에는 셀프리프레시를 위한 스트로브신호의 타이밍이 도시된다. 쌍방의 타이밍에 명확한 바와 같이 셀프리프레시는 CBR리프레시에 비해서 RAS*와 CAS*의 어서트시간이 길게되어 있다.
제40도에는 스테이틱컬럼모드에 의한 긴 피치액세스의 타이밍이 도시되어 있다.
제41도에는 DRAM에 대한 노웨이트스테이트에서의 풀액세스의 타이밍이 도시되고, 제42도에는 DRAM에 대한 1웨이트스테이트에서의 풀액세스의 타이밍이 도시되고, 제43도에는 DRAM에 대한 2프리차지사이클에서의 노웨이트스테이트의 풀액세스의 타이밍이 도시된다.
제44도∼제48도에는 SRAM이나 그밖의 I/O에 대한 액세스 타이밍이 도시된다. 제44도에는 1스테이트에서의 기본버스사이클이 도시된다. 제45도에는 2스테이트에서의 기본버스사이클이 도시된다. 제46도에는 그것에 대해서 웨이트스테이트(Tw)가 삽입된 액세스타이밍이 도시된다. 제47도에는 3스테이트에서의 기본버스사이클이 도시된다. 제48도에서는 그것에 대해서 웨이트스테이트(Tw)가 삽입된 액세스타이밍이 도시된다.
[12. 스트로브생성을 위한 클럭생성(듀티보정)]
다음에 본 실시예의 마이크로컴퓨터에 직결한 DRAM을 16MHz의 스트로브신호로 1사이클에서 고속페이지액세스(짧은 피치)를 가능하게 하기 위한 클럭발생회로 및 스트로브생성논리에 대해서 설명한다.
본 발명자는 스트로브신호에 생성 및 포트부의 제어에 관해 다음의 점을 고려하였다.
(1) 논오버랩의 2상클럭(ψ1, ψ2)의 위상관계는 온도, 전압, 프로세스에 의존해서 심하게 불안정하므로 ψ1, ψ2의 양쪽을 사용해서 포트부논리를 제어하는 것은 곤란하다. 그래서, 1개클럭ψ의 상승에지만을 사용해서 ψ의 선두에서 변화하는 각종 스트로브, 어드레스출력, 데이타래치를 제어하는 것의 우위를 발견하였다.
(2) 지연소자의 사용은 온도, 전압, 프로세스에 의존해서 지연량이 불안정하므로 득잭은 아니다.
(3) 스트로브의 부하용량을 감소시키고, 버퍼의 드라이바빌리티를 올려서 tr, tf의 절대적 시간을 감소시켜서 내부클럭과 외부클럭의 스큐시간을 감소시킨다. 예를들면 CAS*의 출력버퍼로써 사이즈가 600/400의 트랜지스터를 사용하여 CL=30pF로 한다. 버퍼의 출력게이트와 패케이지의 용량을 15P정도는 필요로 한다. 그 때문에 90pF→30pF가 아닌 105pF→45pF라는 개선으로 된다. 따라서, tD@30pF=9∼10ns이다. 이 지연시간은 버퍼고유의 것이고, 이것에 접지바운스 효과의 임피던스를 넣으면 또 3∼5ns늦어지므로 tD@30pF=12∼13ns 정도라 고려된다.
(4) 메모리사이클중의 크리티컬부분의 집중을 듀티 보정회로로 완화한다. 상기의 (1)∼(3)의 수단을 사용해도 CAS*다운(CAS*의 어서트)부터 데이타확정까지의 시간(tCAC)에 관해 tCAC〉20ns로 한없이 엄격하다. 역으로 CAS*의 하이폭, 즉 네게이트기간(tCP)에 관해서는 tCP〉10ns로 비교적 엄격하지 않다. 내부의 2상클럭으로 만들어지는 타이밍이 한정되어 있으므로, 버스사이클중에서 tCAC만이 특별히 엄격하다. DRAM의 AC규격에 적합하게 하기 위해 듀티보정회로에서 적당한 듀티를 갖는 클럭을 만들어서 CAS*를 생성하는 것이 바람직하다는 것이 본 발명자에 의해서 발견되었다. 그렇게 하는 것에 의해 양산 및 테스팅, 전압, 프로세스의 변동에 견딜 수 있는 제품으로 하면서 높은 주파수에서 DRAM의 고속페이지모드를 서포트할 수 있다. 또, 듀티보정회로는 면적적으로는 비교적 작게 구성할 수 있다.
(5) 듀티보정회로를 클럭발생회로에 적용할 때 듀티보정의 적정값을 시스템면에서 검토한 결과 5V 동작의 DRAM에서는 35%가 최적인 것이 판명되었다. 3V의 경우에는 전압의 스레시홀드가 다르므로 50%인 것이 좋은 것이 판명되었다. 이들을 버스컨트롤러내의 레지스터로 전환한다.
또, AC규격의 규정은 다음과 같은 식으로 규정하는 것으로 한다.
tACC=tcyc·스테이트수-25ns
어드레스확정(컬럼어드레스확정)에서 DRAM의 출력데이타 래치까지의 시간
tCAC=tcyc·0.65-18ns=39-18=21ns
CAS*어서트에서 DRAM의 출력데이타래치까지의 시간
tRAC=Tcyc·1.5-20ns
RAS*어서트에서 DRAM의 데이타래치까지의 시간
tOFF1=0ns
CAS*의 상승부터의 DRAM의 데이타홀드시간
여기에서, 내부클럭 생성방식에 대해서 설명한다. 종래의 마이크로컴퓨터에서는 내부에 클럭발진용의 인버터를 갖고, 외부단자에 수정과 2개의 콘덴서를 외부에 마련하는 것만으로 발진시킬 수 있었다. 이 방법은 발진에 필요한 외부에 마련하는 부품이 저렴하고, 또한 내장면적이 작으며, 또 소프트웨어로 클럭발진용의 인버터를 동작하게하거나 동작하지 않게해서 수정발진자의 발진을 개시하거나 정지시킬 수 있으므로 프로세서의 사용상황에 맞춰서 소비전력을 절감할 수 있기 때문에 싱글칩 마이크로컴퓨터에서 양호하게 이용된다. 지바 노리아끼저 “싱글칩 마이크로컴퓨터H8활용전과”(평성3년 11월 1일 초판제2쇄, 기술평론사에서 발행)의 2.3장 시스템클럭(pp.34∼36)에 상세하게 기재되어 있다. 입력클럭을 칩내부에서 2분주하는 것에 의해 50%의 듀티의 클럭을 얻고 있었다. 예를들면 20MHz의 외부클럭을 입력한 경우에 이 파형의 상승에지 또는 하강에지만을 이용해서 내부에서 그 1/2의 주파수의 10MHz의 내부클럭을 발생시키고 있었다. 이때에는 외부클럭의 주기가 일정하므로 내부클럭의 하이측과 로우측의 길이를 일정하게 해서 비교적 용이하게 50%의 듀티를 갖는 내부클럭을 발생할 수 있었다. 그런데, 외부클럭주파수의 증가는 LSI내부의 회로설계, 시스템구성시의 내장코스트, 외부로 방출하는 전파잡음의 크기라는 점에서 바람직하지 않다. 반면, 프로세서의 처리능력은 클럭성능에 비례하므로 고성능을 얻기 위해서는 클럭주파수를 높이고자 하는 요구가 있다. 최근에는 외부클럭의 주파수를 높이지 않고 내부 클럭주파수를 높이는 방법이 취해지고 있다. 비교적 낮은 외부 클럭의 주파수에서 고속도로 내부의 명령실행을 실행하는 방법으로써 통칭 “*1클럭” 또는 “더블클럭”이라 일컬어지는 기술이 있다. “*1클럭”은 1클럭주기에서 내부에서 1명령실행을 실행하는 시스템이다. 이 방식의 약점은 입력하는 파형의 로우기간과 하이기간을 외부에서 엄격하게 조정하는 것을 사용자에게 요구하므로 CPU의 가격에 대해서 상대적으로 상당히 고가인 외부클럭 패턴제너레이터를 내장하는 것이 필요하게 되어 시스템코스트가 상승하는 것이다. “더블클럭”은 Phased-Lock-LOOP(PLL)방식으로 정해지는 회로구성을 사용해서 외부에서 입력되는 신호와의 위상을 일치시키면서 입력신호보다 더욱 고주파인 신호를 접압제어발전기(VOC)에 의해 생성한다. 이 방식의 약점은 전압제어의 발진에 의해서 신호생성을 하고 있으므로 입력신호의 주파수가 너무낮으면 신호생성을 할 수 없는 점과 내장하는 PLL자신이 소비하는 전력이 높은 점이다.
이상의 점을 고려한 듀티보정회로의 원리와 그 이점에 대해서는 설명한다. 실시예의 마이크로컴퓨터의 동작클럭 주파수는 특히 제한되지 않지만 5V동작시에 16MHz∼20MHz이고, 3V동작시에 8MHz∼12.5MHz이다. 시스템코스트를 고려해서 20MHz내외의 수정진동자를 XTAL과 EXTAL에 접속해서 스스로 발진시키는 방식을 취하고 있다. 외부클럭 패턴제너레이터를 사용해서 외부입력을 실행하는 것도 가능하다. 싱글칩 마이크로컴퓨터의 코스트의 구속조건하에서는 정확한 듀티의 클럭을 생성할 수 있는 고가인 클럭패턴 제너레이터를 사용하는 것을 사용자에게 요구하는 것은 어렵다. 따라서, 수정발진자를 외부에 접속해서 듀티보정회로를 거쳐서 거의 50%의 듀티를 갖는 클럭을 만들고, 그후 논오버랩 클럭생성회로를 거쳐서 내부에서 사용하는 2상의 논오버랩 클럭신호(ψ1, ψ2)를 생성해서 각 컨트롤포인트에 타이밍을 공급한다. 또, 듀티보정회로에서 발생한 약50%의 듀티를 갖는 클럭을 칩의 외부의 시스템에도 CK신호로써 공급해서 이것을 버퍼, 주변 칩등과의 동기신호로 한다.
제49도에는 듀티보정회로의 원리설명도가 도시된다. 듀티보정회로의 기능은 임의의 듀티를 갖는 펄스의 입력신호fi를 소정의 듀티(예를들면 50% 또는 35%)로 형성하는 것이다. 회로 구성은 입력신호 fi의 위상에 관해서 상보적인 단에 배치한 2조의 지연회로 CDLY1 및 CDLY2와 지연량 제어회로 CRSW1 및 CRSW2로 이루어진다. 이들 지연회로의 특징은 입력펄스 fi의 상승에지만을 지연시키는 회로이고, 그 지연시간은 제어전압 Vo1(또는 Vo2)에 의해 조정가능하다. 즉, N채널MOS인 MOSM4의 소오스드레인간의 저항값을 가변으로 하고, 콘덴서CD의 축적전하의 방전시간을 가변으로 하는 것에 의해 다음 단의 인버터에 이르는 펄스전달시간의 지연시간을 조절하는 것이다. 지연량 제어회로CRSW1(CRSW2)는 콘덴서CG, 그 충전용의 정전류원P11, 방전용의 정전류원P12 및 이들 전류 ich, iDc의 전환 트랜지스터M12, M13으로 이루어진다. 출력펄스fo의 듀티비에 맞춰서 CG로의 충방전이 제어되고, 그 결과 제어전압 Vo1(또는 Vo2)가 조절된다. 2개의 정전류원 PI1, PI2의 전류값 ich, iDc의 비에서 출력 fo의 듀티가 결정되므로 ich=iDc 일 때 입력 fi가 여러 듀티를 갖고 있어도 출력 fo는 듀티 50%의 펄스를 얻을 수 있다.
제50도에는 상기 듀티보정회로의 동작타이밍파형이 도시된다.
제49도의 회로에 있어서 듀티〉50%의 경우를 설명한다. 동일 도면에 있어서, tc1∼tc5는 CG의 ich충전기간이고, td1∼td5는 CG의 방전기간이다. 회로로써는 전단의 지연회로 CDLY1과 제어회로 CRSW1이 주로 작용하고, 입력 fi의 하강에지 Edg1에서는 트랜지스터M3이 ON하여 콘덴서CD를 급속하게 충전하기 위해 출력 fo의 상승에지 Edg2 및 fo의 하강에지 Edg3의 지연은 매우 적다. fi의 상승에지Edg4에 있어서는 트랜지스터M3이 OFF해서 M5가 ON으로 된다. 이때는 트랜지스터 M4를 통해서 CD의 전하가 천천히 방전되므로 출력 fo의 하강에지 Edg5가 완만하게 되어 결과적으로는 출력 fo의 상승에지 Edg6이 지연된 것으로 된다. 출력fo가 L레벨일때는 M12가 ON해서 전류전원 P11에서 전류 ich를 CG로 충전한다. fo가 H레벨일때는 M13이 ON해서 전류전원 P12측으로 CG의 전하가 방전된다. 따라서, CG의 평균전하(제어전압Vo1)은 출력fo의 H레벨기간이 “L”레벨기간에 비해서 길어지면 충전량에 대해서 방전량이 많아진다. 그 결과 Vo1이 내려갈수록 트랜지스터 M4의 저항이 커진다. 그러므로, fo의 상승에지의 지연시간은 t1〈t2〈t3...로 증대해서 출력의 “H”레벨기간을 단축시키고, 즉 듀티를 감소시키는 방향으로 작용한다. 그 결과, 1주기에 있어서의 CG의 충전량과 방전량이 평형한 듀티의 출력이 얻어지는 상태에서 회로는 정상상태에 도달한다. 정상상태에 도달했을때의 출력fo의 듀티비는
η=iDc/(iDc+ich)%
로 정해지고, iDc=ich일 때 출력fo의 듀티비는 50%로 된다. fi의 듀티비가 상기의 정상상태에서 얻어지는 듀티비와 같던가 그것보다 작은 경우에는 지연회로 CDLY1은 단지 인버터로써 작용하고 듀티보정은 실행하지 않는다. 마찬가지로 해서 iDc와 ich의 값을 조정하는 것에 의해서 듀티비를 기본적으로는 어떤 값으로 할 수도 있다.
다음에 본 실시예의 마이크로컴퓨터MCU에 있어서 상기원리를 적용한 클럭발생회로(18)에 대해서 설명한다. 클럭발생회로(18)은 제51도에 도시되는 2조의 지연회로(180), (181)과 지연량 제어회로(182), (183)을 사용해서 50%듀티의 클럭을 생성하고, 또 제52도에 도시되는 지연회로(184)와 지연량 제어회로(185)를 사용해서 50%듀티의 클럭의 상승에지를 35%지연시키는 것에 의해 15%의 듀티를 갖는 클럭을 생성하고 또 이들을 조합해서 상승에지가 동위상의 50%듀티의 클럭과 35%의 듀티의 클럭을 생성하고 있다. 상기 지연회로(184)는 지연회로(180)과 동일한 회로구성으로 된다. 지연량 제어회로(185)의 1예는 제53(a)에 도시된다. 이러한 구성으로 생성되는 50% 듀티의 클럭을 기본을 CKS, CKM, SKI, PHIXN의 클럭이 생성된다. 35%듀티의 클릭은 CK35로써 생성된다. 제53(b)에는 듀티50%의 CKM과 듀티35%의 CK35의 파형이 대표적으로 도시되어 있다.
제52도에 도시되는 클럭발생회로의 각 단자 또는 신호는 다음의 기능을 갖는다.
CK35(출력): 35%듀티의 클럭(통칭ψ35)를 출력하는 단자 TM=“H”일때는 EXTALI 단자로 부터의 클럭을 가공해서 35%의 듀티로, TM=“L”일때는 50%의 듀티보정회로의 출력을 가공해서 하이부분을 35%로 삭감해서 CK35로 된다.
CKS(출력) : 슬리프시 및 대기시에만 정지하는 클럭출력이다.
CKM(출력) : 대기시에만 정지하는 클럭출력. 대기에서 복귀할 때 발진안정후에 동작하기 시작하는 클럭이다.
CKI(출력) : 대기시에 정지하지 않는 클럭출력. 대기에서 복귀할 때 발진안정전에 동작하기 시작하는 클럭. 워치독타이머마을 작동시키는 신호이다.
PHAIXN(출력) : 외부ψ출력에 사용한다. 동작은 CKM과 같다.
SLP(입력) : 슬리프상태를 나타내는 신호이다.
STBY(입력) : 하드웨어 대기상태와 소프트웨어 대기상태를 OR(논리합)한 것. SLEEP명령의 실행 또는 하드웨어 대기상태(테스트모드로써 존재하고 있다)에 의해 L→H 로 되고, NMI에 의해 가동된 위치독타이머가 오버플로하면 H→L 로 된다.
STBYW(입력) : SYBY와 기능은 거의같다. 단, NMI 입력에 의해 H→L로 된다. 기동된 워치독타이머가 오버플로하고 복귀시의 대기상태시에는 L로 된다. STBY=H일때에는 180∼183의 회로를 포함하는 50%의 듀티보정회로부분과 184 및 185의 회로를 포함하는 35%의 듀티보정회로부분을 함께 불활성화한다.
TM(입력) : 모드단자이다. 하이레벨인 경우에는 듀티보정회로를 통과하지 않고 클럭을 XTALIN단자, EXTALI단자로 부터의 입력에 직결한 상태로 한다. 로우인 경우에는 듀티보정회로를 통해서 내부클럭을 생성한다. TM=“H”일때에는 조건없이 50%의 듀티보정회로부분을 불활성으로 한다. 이 신호는 주로 LSI의 테스팅을 용이하게 하기 위해서와 어떤 이유로 인해 외부 클럭으로 LSI를 드라이브하고자 하는 경우에 유효하다.
XTALIN단자(입력) : 외부XTAL단자로 부터의 입력단자이다.
EXTALI단자(입력) : 외부EXTAL단자로 부터의 입력단자이다.
상기 클럭발생회로에서 생성된 50%듀티 및 35%듀티의 클럭신호는 각 스트로브신호의 생성 및 버퍼제어등에 이용된다. 예를들면
(1) 어드레스버퍼로의 클럭은 듀티보정회로의 CK35에서 기본적으로는 통상 클럭의 분배방법과 같은 방법으로 의사 2상클럭드라이버, 클럭드라이버를 거쳐서 각 부분에 분배된다.
(2) 데이타버퍼에 관해서는 데이타버퍼의 입력데이타를 커팅하는 회로는 ψ2클럭을 사용해서 실현된다.
(3) CAS*의 실현에 관해서는 제54도에 도시되는 논리가 스트로브생성논리30에 포함된다. 동일 도면에 도시되는 논리로의 입력신호와 출력신호는 다음과 같다.
XCAS0, XCAS1=0, 0 : 짧은 피치(듀티50%)
XCAS0, XCAS1=0, 1 : 짧은 피치(듀티50%)
XCAS0, XCAS1=1, 0 : 긴 피치
XCAS0, XCAS1=1, 1 : NOP
XCASH,0 : 그 사이클동안은 CASL*를 디스에이블.
XCASH=1 : 그 사이클동안은 CASL*를 인에이블.
XCASH=0 : 그 사이클동안은 CASH*를 디스에이블.
XCASH=1 : 그 사이클동안은 CASH*를 인에이블.
ASE*ASE모드(에뮬레이션모드)시에 CAS*출력을 마스크하는지 하지않는지를 지시한다.
CKx : 듀티50%의 클럭신호의 총칭.
ZCASLN : CASL*에 대응되는 출력신호.
ZCASHN : CASH*에 대응되는 출력신호.
제54도의 회로에 있어서, SEL은 듀티50%의 클럭신호와 듀티35%의 클럭신호중 어느것인가를 선택하는 셀렉터이고, 기본적으로는 상기 XCAS0, XCAS1의 레벨의 조합에 따라서 제어되다.
제55도에는 35%듀티의 CAS*RAS*, 논오버랩 2상 클럭신호ψ1, ψ2와 듀티50% 및 35%의 클럭신호의 상관의 1예가 도시된다.
[13. 마이크로컴퓨터의 레지스터 및 데이타구성]
다음에 본 실시예의 마이크로컴퓨터MCU에 있어서의 CPU(1)의 레지스터구성 및 데이타구성을 설명한다.
(1) 범용레지스터(Rn)
CPU(1)은 제56(a)도에 도시되는 바와 같이 16개의 범용레지스터 R0∼R15를 갖는다. R0은 명령에 따라서는 어큐뮬레이터로써 가정되는 일이 있다. R15는 에외처리중에 있어서 하드웨어 스택포인터로써 가정된다. 도면에 있어서 SP는 스택포인터이다.
(2) 컨트롤 레지스터
CPU(1)은 컨트롤레지스터로써 제56(b)도에 도시되는 스테이터스레지스터SR, I/O의 베이스 어드레스의 저장레지스터로써 사용되는 글로벌 베이스레지스터GBR, 인터럽트 벡터영역의 베이스어드레스의 저장레지스터로써 사용되는 벡터베이스레지스터VBR을 갖는다.
스테이터스레지스터SR은 MQIIII--ST와 같은 비트를 갖는다.
T비트 : 참(1), 거짓(0)을 나타낼 때, MOVT, CMP, TAS, TST, BT, SETT, CLRT명령으로 참조된다. 캐리, 보로, 오버/언더플로 등을 나타낼 때 ADDV/C, SUBV/C, NEGC, DIVOU/S, DIV1, SHAR/L,SHAR/L, ROTR/L, ROTCR/L 명령으로 참조된다.
S비트 : MAC 명령으로 참조된다.
--비트 : 예약비트이다.
I비트 : 인터럽트마스크비트이다.
M/Q비트 : DIVOUS/S, DIV1명령으로 참조된다.
(3) 시스템레지스터
CPU(1)은 제57(c)도에 도시되는 시스템레지스터를 MACH, MACL, PR, PC를 갖는다. MACH/L은 승산/가산(prodict/sum)레지스터이고, 승산, 승산/가산연산의 결과의 저장레지스터로써 사용된다. MACH는 하위10비트가 유효하고, 리드할 때 부호확장된다. PR은 프로시져 레지스터이고, 프로시져로 부터의 복귀지어드레스의 저장레지스터로써 사용된다. PC는 프로그램 카운터이다.
(4) 레지스터의 데이타구성
CPU(1)에 있어서의 레지스터의 데이타구성은 제57(d)도에 도시된다. 레지스터 오퍼랜드의 데이타사이즈는 항상 긴 워드이다. 메모리 오퍼랜드의 데이타사이즈가 바이트 또는 워드일 때 긴 워드로 부호확장된후 레지스터에 저장된다.
(5) 메모리상에서의 데이타구성
메모리상에서의 데이타구성에 대해서는 제57(e)도에 도시된다.
워드 데이타로(2n)번지이외에 시작되는 것, 긴워드 데이타로(4n)번지이외에서 시작되는 것의 액세스는 어드레스에러를 발생한다. 이때, 액세스한 결과는 보증되지 않는다. 특히, R15를 참조하는 하드웨어스택영역에는 PC/SR를 유지하므로 데이타를 (4n)번지에서 시작되는 긴워드로 한정할 필요가 있다.
(6) 이미디어트의 데이타구성
MOV, ADD, CMP/EQ명령에서는 이미디어트데이타를 부호확장 한후 긴워드로 연산한다. 역으로 TST, AND, OR, XOR 명령에서는 제로확장한후 긴워드로 연산한다. 따라서, AND명령에서 디스티네이션레지스터의 상위 24비트는 항상 클리어된다.
본 실시예의 마이크로컴퓨터MCU의 CPU(1)에 의한 어드레싱 모드와 어드레스의 계산방법은 제58도∼제60도에 도시된다.
본 실시예의 마이크로컴퓨터MCU의 CPU(1)의 명령에는 다음의 특징이 있다.
(1) 전체 명령이 16비트의 고정길이이다.
(2) 이미디어트데이타는 메모리상에 배치한다.
(3) 워드와 긴워드의 이미디어트 데이타는 명령코드중에 배치하지 않고 메모리상의 테이블에 배치한다. 이 테이블은 PC상대어드레스모드로 참조된다.
(4) 연산의 기본적인 데이타사이즈는 긴워드이다.
(5) 레지스터간 연산이 주체의 로드/스토어 아커택쳐를 채용하고 있다.
(6) 메모리의 액세스사이즈는 바이트/워드/긴워드를 선택할 수 있고 여러번 사용되고 있다.
(7) 대부분의 명령은 1명령/1스테이트를 실현하고 있다. 20MHz동작시 50ns/1명령이 된다.
(8) 지연분기명령을 채용하고 있다. 무조건 분기명령은 지연분기명령이다. 이 명령직후의 명령을 분기에 앞서서 실행한다. 분기시의 파이프라인의 흐트러짐을 경가할 수 있다.
(9) 비교명령에 있어서의 비교결과는 SR내의 T 비트에 반영하고, 그 참/거짓에 의해서 조건을 분기한다.
(10) SR내의 T비트는 필요최소한의 명령에 의해서만 변호한다.
[14. 마이크로컴퓨터의 명령설명]
본 실시예의 마이크로컴퓨터MCU의 CPU(1)의 명령은 데이타 전송명령, 산술연산명령, 논리연산명령, 시프트명령, 분기명령, 시스템제어 명령으로 분류된다. 제62도∼제71도에는 제61도의 표시형식에 따라서 각 명령이 그 분류순으로 도시된다.
다음에 각 명령의 상세한 것을 알파벳순으로 설명한다. 그 설명형식은 다음과 같다.
[설명형식]
명령의 명칭 명령의 분류
서식 어셈블러의 이력서식으로 표시하고 있다.
imm, disp는 수치, 식 또는 심볼이 된다.
설명 동작의 설명을 실행하고 있다.
주의 명령을 사용하는데 있어서 특히 주의하기 바라는 것을 설명하고 있다.
동작 C로 동작내용을 표시하고 있다. 여기에서는 다음의 자원의 사용을 가정하고 있다.
unsigned char Read_Byte(unsigned long Addr) ;
unsigned short Read_Word(unsigned long Addr) ;
unsigned long Read_Long(unsigned long Addr) ;
어드레스 Addr의 각각의 사이즈의 내용을 되돌립니다.
(2n)번지이외로 부터의 워드,
(4n)번지이외로 부터의 긴 워드의 리드는 어드레스에로써 검출합니다.
unsigned char Write_Byte(unsigned long Addr, unsigned long Data) ;
unsigned short Write_Word(unsigned long Addr, unsigned long Data) ;
unsigned long Write_Long(unsigned long Addr, unsigned long Data) ;
어드레스 Addr에 데이터 Data를 각각의 사이즈로 라이트합니다.
(2n)번지이외로의 워드,
(4n)번지이외로의 긴 워드의 라이트는 어드레스에러로써 검출합니다.
Delay Slot (unsigned long Addr) ;″
어드레스(Addr-4)의 슬롯명령으로 실행을 옮깁니다.
이것은 예를들면 “Delay Slot(4) ;″
일 때 4번지가 아닌 0번지의 명령으로 실행이 옮기는 것을 의미합니다. 또, 이함수에서 다음의 명령으로 실행이 옮겨지게 하고자 하면 그 직전에 다음의 명령을 슬롯 명령으로써 검출합니다.
BF, BT, BRA, BSR, JMP, JSR, RTS,
각 레지스터의 본체
SR의 구조의 정의
#define M ((*struct SRO *)(&SR)).MO)
#define Q ((*struct SRO *)(&SR)).QO)
#define S ((*struct SRO *)(&SR)).SO)
#define T ((*struct SRO *)(&SR)).TO)
SR내에서의 비트의 정의
Error(char *er);
에러표시함수
이것이외에 PC는 현재 실행중인 명령의 4바이트(2명령)앞을 나타내고 있는 것으로 가정하고 있다.
이것은 예를들면 “PC=4;″는 4번지가 아닌 0번지의 명령으로 실행이 옮기는 것을 의미한다.
사용예
어셈블러 니모닉으로 예를 나타내고, 명령의 실행전후의 상태를 표시하고 있다.
문자체 . align은 어셈블러제어명령인 것을 나타내고, 다음의 의미를 갖는다.
. org 로케이션카운터설정
. data.w 워드정수 데이터확보
. data.1 긴 워드정수 데이터확보
. sdata 문자열 데이터확보
. align 2 2바이트경계조정
. align 4 4바이트경계조정
. arepeat 16 16회 반복 전개
. arepeat 32 32회 반복 전개
. aendr 회수지정 반복 전개종료
ADD ADD binary 산술연산명령
서식 ADD Rm, Rn
ADD #imm, Rn
설명 범용레지스터 Rn의 내용과 Rm을 가산하고, 결과를 Rn에 저장한다.
범용레지스터Rn과 8비트 이미디어트 데이터의 가산도 가능하다. 8비트 이미디어트 데이터는 32비트로 부호확장하므로 감산과의 겸용이 가능하다.
동작
사용예
서식 ADDC Rm, Rn
설명 범용레지스터 Rm 과 T비트를 가산하고, 결과를 Rn에 저장한다. 연산의 결과에 의해서 캐리를 T비트에 반영한다. 32비트를 넘는 가산을 실행할 때 사용한다.
동작
사용예
ADDV ADD with (Vflag)overflow check 산술연산명령
서식 ADDV Rm, Rn
설명 범용레지스터 Rn의 내용과 Rm을 가산하고, 결과를 Rn에 저장한다. 오버플로가 발생하면 T비트를 세트한다.
동작
사용예
서식
AND Rm, Rn
AND #imm, R0
AND.B #imm, @(R0, GBR)
설명 범용레지스터 Rn의 내용과 Rm의 논리곱을 취하고, 결과를 Rn에 저장한다. 특수형으로써 범용레지스터 R0과 제로확장한 8비트 이미디어트 데이터와의 논리곱, 또는 GBR상대로 8비트 메모리와 8비트 이미디어트데이타와의 논리곱이 가능하다.
주의 AND #imm, RO에서는 연산의 결과, R0의상위 24비트는 항상 클리어된다.
동작
사용예
BF/BT Branch if False/True 분기명령
서식 BF disp
BT disp
설명 T비트를 참조하는 조건이 있는 분기명령이다. T=1일 때 BT는 분기하지만 BF는 다음의 명령을 실행한다.
역으로 T=0일 때 BF는 분기하지만, BT는 다음의 명령을 실행한다. 분기지는 PC에 디스플레이스먼트를 부가한 어드레스이다. PC는 본 명령의 2명령후의 선두어드레스이다. 8비트 디스플레이스먼트는 부호확장후에 2배하므로, 분기지와의 상대거리는 -256바이트에서 +254바이트의 범위로 된다. 분기지에 미치지 않을때는 BRA명령 또는 JMP명령과의 조합으로 대응할 필요가 있다.
동작
사용예
BRA BRAnch 분기명령
서식 BRA disp
설명 무조건의 지연분기명령이다. 분기지는 PC에 디스플레이스먼트를 가한 어드레스이다. PC는 본 명령의 2명령후의 선두어드레스이다. 12비트 디스플레이먼트는 부호확장후 2배하므로 분기지와의 상대거리는 -4096바이트에서 +4094바이트의 범위로 된다. 분기지에 미치지않을때는 분기지 어드레스를 MOV명령으로 레지스터로 전송한후에 JMP명령으로의 변경이 필요하다.
주의 지연분기명령이므로 본 명령의 직후의 명령을 분기에 앞서서 실행한다. 본 명령과 직후의 명령간에는 어드레스에러와 인터럽트를 받지 않는다. 직후의 명령이 분기명령일때는 그것을 슬롯 부당명령으로써 인식한다.
동작
사용예 BAR TRGET ; TRGET로 분기한다.
ADD R0, R1; 분기에 앞서서 실행한다.
NOP ; ←BRA 명령으로 분기지어드레스계산에 사용하는 PC의 위치
TRGET : ;←BRA 명령의 분기지
BSR Branch SubRoutine 분기명령
서식 BSR disp
설명 지정된 어드레스의 프로시져로 지연분기한다. PC의 내용을 PR로 세이브하고, PC에 디스플레이스먼트를 부가한 어드레스로 분기한다. PC는 본 명령의 2명령후의 선두어드레스이다. 12비트 디스플레이먼트는 부호확장후 2배하므로, 분기지와의 상대거리는 -4096바이트에서 +4094바이트의 범위로 된다. 분기지에 미치지 않을때는 분기지어드레스를 MOV명령으로 레지스터로 전송한후에 JSR 명령으로의 변경이 필요하다. RTS와 조합해서 프로시져 콜에 사용한다.
주의 지연분기명령이므로, 본 명령의 직후의 명령을 분기에 앞서서 실행한다. 본 명령과 직후의 명령간에는 어드레스에러와 인터럽트를 받지 않는다. 직후의 명령이 분기명령일때는 그것을 슬롯 부당명령으로써 인식한다.
동작
사용예
서식 CLRT
설명 T비트를 클리어한다.
동작
사용예 CLRT ; 실행전 T=1
; 실행후 T=0
CLARMAC CLeaR MAC register 시스템제어명령
서식 CLARMAC
설명 MACH, MACL 레지스터를 클리어한다.
동작
사용예
서식
설명 범용레지스터 Rn과 Rm을 비교하고, 그 결과 지정된 조건(cond)이 성립하고 있으면 T비트를 세트한다. 조건이 성립하지 않을 때 T비트를 클리어한다. Rn의 내용은 변화하지 않는다. 8조건을 지정할수 있다.
PZ과 PL의 2조건에 대해서는 Rn과 0의 비교가 된다. EQ의 조건에 대해서는 부호확장한 8비트 이미디어트데이타와 R0의 조건에 대해서는 부호확장한 8비트 이미디어트데이타와 R0의 비교도 가능하다. R0의 내용은 변화하지 않는다.
니모닉 설명
CMP/EQ Rm, Rn Rn=Rm일때 T=1
CMP/GE Rm, Rn 유부호값으로써 Rn≥Rm일때 T=1
CMP/GT Rm, Rn 유부호값으로써 Rn〉Rm일때 T=1
CMP/HI Rm, Rn 무부호값으로써 Rn〉Rm일때 T=1
CMP/HS Rm, Rn 무부호값으로써 Rn≥Rm일때 T=1
CMP/PL Rn Rn〉0일때 T=1
CMP/PZ Rn Rn≥0일때 T=1
CMP/STR Rm, Rn 어느것인가의 바이트가 같을 때 T=1
CMP/EQ #imm, R0 R0=imm 일 때 T=1
동작
사용예
서식 DIV1 Rm, Rn
DIV0S Rm, Rn
DIV0U
설명 범용레지스터Rn의 내용 32비트를 Rm의 내용으로 1스텝계산하고, 결과의 1비트를 T비트에 저장한다. DIV0S는 부호가 있는 계산용의 초기화명령으로 피제수(Rn)의 MSB를 Q비트에, 제수(Rm)의 MSB를 M비트에, M비트와 Q비트의 XOR을 T비트에 저장한다. DIV0U는 부호가 없는 제산용의 초기화명령으로 M/Q/T비트를 0으로 클리어한다. DIVI1을(필요하다면 RPTCL과 조합해서)제수의 비트수분 반복하는 것에 의해서 몫을 얻는다. 이 반복중에는 지정한 레지스터와 M/Q/T비트에 중간결과를 저장하고 있다. 이들을 소프트웨어로 리라이트하면 연산결과를 보증할 수 없게 된다. 제로연산과 오버플로의 검출 및 잉여의 연산은 준비하고 있지 않다. 제산의 시퀀스는 다음 사용예가 참고로 된다.
동작
사용예 1
사용예 2
사용예 3
사용예 4
서식 EXTS.B Rm, Rn
EXTS.W Rm, Rn
설명 범용레지스터Rm의 내용을 부호확장해서 결과를 Rn에 저장한다. 바이트지정일 때, Rn의 비트8에서 비트31에 Rm의 비트7의 내용을 전송한다. 워드지정일 때 Rn의 비트16에서 비트31로 Rm의 비트15의 내용을 전송한다.
동작
사용예
서식 EXTU.B Rm, Rn
EXTU.W Rm, Rn
설명 범용레지스터Rm 내용을 제로확장해서 결과를 Rn에 저장한다. 바이트지정일 때 Rn의 비트8에서 비트31로 0을 전송한다. 워드지정일 때 Rn의 비트16에서 비트31로 0을 전송한다.
동작
사용예
서식 JMP @Rn
설명 지정된 어드레스로 무조건으로 지연분기한다. 분기지는 범용레지스터 Rn의 내용은 32비트데이타로 표시되는 어드레스이다.
주의 지연분기명령이므로 본 명령의 직후의 명령을 분기에 앞서서 실행한다. 본 명령과 직후의 명령간에는 어드레스에러와 인터럽트를 받지 않는다. 직후의 명령어 분기명령일때는 그것을 슬롯 부당명령으로써 인식한다.
동작
사용예
서식 JSR @Rn
설명 지정된 어드레스의 프로시져로 지연분기한다. PC의 내용을 PR로 세이브하고, 범용레지스터Rn의 내용의 32비트데이타로 표시되는 어드레스로 분기한다. PC는 본 명령의 2명령후의 선두어드레스이다. RTS와 조합해서 프로시져 콜에 사용한다.
주의 지연분기명령이므로, 본 명령의 직후의 명령을 분기에 앞서서 실행한다. 본 명령과 직후의 명령간에는 어드레스에러와 인터럽트를 받지않는다. 직후의 명령이 분기명령일때는 그것을 슬롯 부당명령으로써 인식한다.
동작
사용예
서식
LDC Rm, Cn
LDC.L @Rm+, Cn
설명 소오스 오퍼랜드를 컨트롤 레지스터Cn(SR, GBR, VBR)에 저장한다.
주의 본 명령과 직후의 명령간에는 인터럽트를 받지 않는다(어드레스에러는 받는다).
동작
사용예
서식 LDS Rm, Sn
LDS.L @Rm+, Sn
설명 소오스 오퍼랜드를 시스템레지스터 Sn(MACH, MACL, PR)에 저장한다.
주의 본 명령과 직후의 명령간에는 인터럽트를 받지않는다(어드레스에러는 받는다).
동작
사용예
서식 MAC.W @Rm+, @Rn+
설명 범용레지스터Rm과 Rn의 내용을 어드레스로 하는 16비트 오퍼랜드를 부호가 있는 것으로 승산하고, 결과의 32비트와 MAC 레지스터의 내용을 가산하고, 결과를 MAC 레지스터에 저장한다. S비트가 1일때는 MAC 레지스터에 저장한다. S비트가 1일때는 MAC레지스터와의 가산은 포화연산으로 된다. 포화연산에 있어서는 오버플로가 발생하면 MACH레지스터의 LSB를 1로 세트하고, 결과가 부의 방향으로 오버플로했을때는 H′80000000(최소값)을, 정의 방향으로 오버플로했을때는 H′7FFFFFFF(최대값)을 MACL레지스터에 저장한다. S비트가 0일때는 연결한 MACH/L레지스터에 결과의 42비트를 저장한다. MACH/L레지스터의 상위 22비트(비트31∼비트10)로 비트9의 내용을 전송한다. 연산후 Rm과 Rn의 내용을 모두 +2한다.
동작
사용예
서식 MOV #imm, Rn
MOV.W @(disp,PC),Rn
MOV.L @(disp,PC),Rn
설명 긴워드로 부호확장한 이미디어트 데이터를 범용레지스터Rn에 저장한다. 데이터가 워드/긴 워드일때는 PC에 디스플레이먼트를 부가한 어드레스에 저장된 테이블내의 데이터를 참조한다. 데이터가 워드일 때 8비트 디스플레이먼트는 제로확장후 2배하므로, 테이블과의 상대거리는 PC+510바이트까지의 범위로 된다. PC는 본 명령후의 2명령후의 선두어드레스이다. 데이터가 긴워드일 때 8비트 디스플레이스먼트는 제로 확장후 4배하므로, 오퍼랜드와의 상대거리는 PC+1020바이트까지의 범위로 된다. PC는 본 명령의 2명령후의 선두어드레스계산에 사용한다.
주의 테이블은 모듈 후단 또는 무조건 분기명령의 1명령후로의 배치가 최적이다. 510바이트/1020바이트이내에 무조건 분기명령이 없는 등의 이유로 최적배치가 불가능할 때는 BRA명령으로 테이블을 건너뛰는 대책이 필요하다. 본 명령을 지연분기명령의 직후에 배치하면 PC는 분기지의 “선두어드레스+2”로 된다.
동작
사용예
서식 MOV Rm, Rn
MOV Rm, @Rn
MOV @Rm, Rn
MOV Rm, @-Rn
MOV @Rm+, Rn
MOV Rm, @(R0, Rn)
MOV @(R0, Rm), Rn
설명 소오스 오퍼랜드를 디스티네이션으로 전송한다. 오퍼랜드가 메모리일때는 전송하는 데이터사이즈를 바이트/워드/긴워드의 범위에서 지정할 수 있다. 소오스 오퍼랜드가 메모리일때는 로드된 데이터를 긴워드로 부호확장한후 레지스터에 저장한다.
동작
사용예
서식 MOV.B R0, @(disp, Rn)
MOV.W R0, @(disp, Rn)
MOV.L Rm, @(disp, Rn)
MOV.B @(disp, Rm), R0
MOV.W @(disp, Rm), R0
MOV.L @(disp, Rm), R0
설명 소오스 오퍼랜드를 디스티네이션으로 전송한다. 구조체, 스택내의 데이터액세스에 최적이다. 데이터사이즈를 바이트/워드/긴 워드의 범위에서 지정할 수 있지만, 바이트/워드일때는 레지스터가 R0고정으로 된다. 데이터가 바이트 사이즈일 때 4비트 디스플레이스먼트는 제로확장할 뿐이므로 +15바이트까지의 범위를 지정할 수 있다. 워드사이즈 일때 4비트 디스플레이스먼트는 제로확장한후 2배하므로, +30바이트까지의 범위를 지정할 수 있다. 긴 워드사이즈일 때 4비트 디스플레이스먼트는 제로확장한후 4배하므로, +60바이트까지의 범위를 지정할 수 있다. 메모리 오퍼랜드에 미치지않을때는 상술한 @(R0, Rn)모드를 사용할 필요가 있다. 소오스 오퍼랜드가 메모리일때는 로드된 데이터를 긴 워드로 부호확장한후 레지스터에 저장한다.
주의 바이트/워드데이타를 로드할 때 디스티네이션 레지스터가 R0고정이다. 따라서, 직후의 명령으로 R0을 참조하고자해도 로드명령의 실행완료까지 대기된다. 이것은 명령의 순서변경에 의한 최적화가 가능하다.
동작
사용예
서식 MOV @(disp, GBR), R0
MOV R0, @(disp, GBR)
설명 소오스 오퍼랜드를 디스티네이션으로 전송한다. I/O영역내의 데이터액세스에 최적이다. 데이터사이즈를 바이트/워드/긴어드의 범위에서 지정할 수 있지만, 레지스터가 R0고정으로 된다. GBR에는 I/O의 베이스어드레스를 설정한다. I/O의 데이터가 바이트사이즈일 때 8비트디스플레이스먼트는 제로확장할 뿐이므로, +255바이트까지의 범위를 지정할 수 있다. 워드사이즈일 때 8비트 디스플레이스먼트는 제로확장한후 2배하므로 +510바이트까지의 범위를 지정할 수 있다. 긴워드 사이즈일 때 8비트 디스플레이스먼트는 제로확장한후 4배하므로 +1020바이트까지의 범위를 지정할 수 있다. 메모리오퍼랜드에 미치지 않을때는 GBR을 범용레지스터로 전송한후 상술한 @(R0, Rn)모드를 사용할 필요가 있다. 소오스오퍼랜드가 메모리일때는 로드된 데이터를 긴워드로 부호확장한후 레지스터에 저장한다.
주의 로드할 때 디스티네이션 레지스터가 R0고정이다. 따라서, 직후의 명령으로 R0을 참조하고자해도 로드명령의 실행완료까지 대기된다. 이것은 명령의 순서변경에 이한 최적화가 가능하다.
동작
사용예
서식 MOVA @(disp, PC), R0
설명 범용레지스터R0에 소오스 오퍼랜드의 실효어드레스를 저장한다. 8비트디스플레이스먼트는 제로확장한후 4배하므로, 오퍼랜드와의 상대거리는 PC+1020바이트까지의 범위로 된다. PC는 본 명령의 2명령후의 선두어드레스이지만, 하위2비트를 B′00으로 보정한 값을 어드레스계산에 사용한다.
주의 본 명령이 지연분기명령의 직후에 배치되어 있을 때 PC는 분기지의 “선두어드레스+2”로 된다.
동작
사용예
서식 MOVT Rn
설명 T비트를 범용레지스터 Rn에 저장한다. T=1일 때 Rn=1, T=0일 때 Rn=0으로 된다.
동작
사용예
서식 MULS Rm, Rn
설명 범용레지스터Rn의 내용과 Rm을 16비트로 승산하고, 결과의 32비트를 MACL레지스터에 저장한다. 연산은 부호가 있는 산술연산으로 실행하고 있다. Rn과 MACH의 내용은 변화하지 않는다.
동작
사용예
서식 MULU Rm, Rn
설명 범용레지스터Rn의 내용과 Rm을 16비트로 승산하고, 결과의 32비트를 MACL레지스터에 저장한다. 연산은 부호가 있는 산술연산으로 실행하고 있다. Rn과 MACH의 내용은 변화하지 않는다.
동작
사용예
서식 NEG Rm, Rn
설명 범용레지스터 Rn의 내용의 2의 보수를 취하고, 결과를 Rn에 저장한다. 즉, 0에서 Rm을 감산하고, 결과를 Rn에 저장한다.
동작
사용예
서식 NEGC Rm, Rn
설 명 0에서 범용레지스터Rm의 내용과 T비트를 감산하고, 결과를 Rn에 저장한다. 연산의 결과에 의해서 보로를 T비트에 반영한다. 32비트를 넘는 값의 부호반전을 실행할 때 사용한다.
동작
사용예
서식 NOP
설명 PC의 인크리먼트만을 실행하고, 다음의 명령으로 실행을 옮긴다.
동작
사용예 NOP ; 1사이클의 시간이 경과하다.
NOT NOT-logical complement 논리연산명령
서식 NOT Rm, Rn
설명 범용레지스터 Rm의 내용의 1의 보수를 취하고, 결과를 Rn에 저장한다. 즉, Rm의 비트를 반전해서 Rn에 저장한다.
동작
사용예
서식 OR Rm, Rn
OR #imm, R0
OR.B #imm, @(R0, GBR)
설명 범용레지스터 Rn의 내용과 Rm의 논리합을 취하고, 결과를 Rn에 저장한다. 특수형으로써 범용레지스터 R0과 제로확장한 8비트 이미디어트 데이터와의 논리합, 또는 GBR상대로 8비트 메모리와 8비트 이미디어트 데이터와의 논리합이 가능하다.
동작
사용예
서식 ROTL Rn
ROTR Rn
설명 범용레지스터 Rn의 내용을 좌/우방향으로 1비트 로테이드(회전)하고, 결과를 Rn에 저장한다. 로테이트해서 오퍼랜드의 밖으로 나와버린 비트는 T비트로 전송한다.
동작
사용예
ROTCL/ROTCR ROTate with Carry Left/Right 시프트명령
서식 ROTCL Rn
ROTCR Rn
설명 범용레지스터 Rn의 내용을 좌/우방향으로 T비트를 포함해서 1비트 로테이드(회전)하고, 결과를 Rn에 저장한다. 로테이트해서 오퍼랜드의 밖으로 나와버린 비트는 T비트로 전송한다.
동작
사용예
RTE ReTurn from Exception 시스템제어명령
서식 RTE
설명 인터럽트루틴에서 복귀한다. 즉, PC와 SR을 스택에서 복귀하고, 복귀한 PC가 나타내는 어드레스에서 처리를 속행한다.
주의 지연분기명령이므로, 본 명령의 직후의 명령을 분기에 앞서서 실행한다. 본 명령과 직후의 명령간에는 어드레스에러와 인터럽트를 받지않는다. 직후의 명령이 분기명령일때는 그것을 슬롯부당명령으로써 인식한다.
동작
사용예 RTE ; 본래의 루틴으로 복귀한다.
ADD #8,R15; 분기에 앞서서 실행한다.
RTS ReTurn from SubRoutine 분기명령
서식 RTS
설명 프로시져에서 복귀한다. 즉, PC를 PR에서 복귀하고, 복귀한 PC가 나타내는 어드레스에서 처리를 속행한다. 본 명령에 의해서 BSR 및 JSR 명령으로 콜된 프로시져에서 콜 이전으로 복귀할 수 있다.
주의 지연분기명령이므로, 본 명령의 직후의 명령을 분기에 앞서서 실행한다. 본 명령과 직후의 명령간에는 어드레스에러와 인터럽트를 받지 않는다. 직후의 명령이 분기명령일때는 그것을 슬롯부당명령으로써 인식한다.
동작
사용예
서식 SETT
설명 T비트를 세트한다.
동작
사용예 SETT ; 실행전 T=0
실행후 T=1
SHAL/SHAR SHift Arithmetic Left/Right 시프트명령
서식 SHAL Rn
SHAR Rn
설명 범용레지스터 Rn의 내용을 좌/우방향으로 산술적으로 1비트시프트하고, 결과를 Rn에 저장한다. 시프트해서 오퍼랜드의 밖으로 나와버린 비트는 T비트로 전송한다.
동작
사용예
SHLL/SHLR SHift Logical Left/Right 시프트명령
서식 SHLL Rn
SHLL Rn
설명 범용레지스터 Rn의 내용을 좌/우방향으로 논리적으로 1비트시프트하고, 결과를 Rn에 저장한다. 시프트해서 오퍼랜드의 밖으로 나와버린 비트는 T비트로 전송한다.
동작
사용예
SHLLn/SHLRn n bits SHift Logical Left/Right 시프트명령
서식 SHLL2 Rn
SHLL2 Rn
SHLL8 Rn
SHLL8 Rn
SHLL16 Rn
SHLL16 Rn
설명 범용레지스터 Rn의 내용을 좌/우방향으로 논리적으로 2/8/16비트 시프트하고, 결과를 Rn에 저장한다. 시프트해서 오퍼랜드의 밖으로 나와버린 비트는 버린다.
동작
사용예
서식 SLEEP
설명 CPU를 저소비전력모드로 한다. 저소비전력 모드에서는 CPU의 내부상태를 유지하고, 직후의 명령의 실행을 정지하고, 인터럽트 요구의 발생을 대기한다. 요구가 발생하면 저소비전력모드에서 빠져나와 예외처리를 개시한다. 즉, SR과 PC를 스택에서 세이브하고, 소정의 벡터에 따라 인터럽트루틴으로 분기한다. PC는 본 명령의 직후의 명령의 선두어드레스이다.
동작
사용예 SLEEP ; 저소비전력모드로의 천이
STC STore Control register 시스템제어명령
서식 STC Cm, Rn
STC.L Cm, @-Rn
설명 컨트롤 레지스터 Cm(SR, GBR, VBR)을 디스티네이션에 저장한다.
주의 본 명령과 직후의 명령간에는 인터럽트를 받지않는다(어드레스에러는 받는다).
동작
사용예
STS STore System register 시스템제어명령
서식 STS Sm, Rn
STS.L Sm, @-Rn
설명 시스템 레지스터 Sm(MACH, MACL, PR)을 디스티네이션에 저장한다.
주의 본 명령과 직후의 명령간에는 인터럽트를 받지않는다(어드레스에러는 받는다).
동작
사용예
서식 SUB Rm, Rn
설명 범용레지스터 Rn의 내용에서 Rm을 감산하고, 결과를 Rn에 저장한다. 이미디어트데이타와의 감산은 ADD #imm, Rn으로 대용가능하다.
동작
사용예
서식 SUBC Rm, Rn
설명 범용레지스터 Rn의 내용에서 Rm과 T비트를 감산하고, 결과를 Rn에 저장한다. 연산의 결과에 의해서 보로를 T비트에 반영한다. 32비트를 넘는 감산을 실행할 때 사용한다.
동작
사용예
서식 SUBV Rm, Rn
설명 범용레지스터 Rn의 내용에서 Rm을 감산하고, 결과를 Rn에 저장한다. 언더플로가 발생하면 T비트를 세트한다.
동작
사용예
서식 SWAP.B Rm, Rn
SWAP.W Rm, Rn
설명 범용레지스터 Rm의 내용의 상위와 하위를 교환해서 결과를 Rn에 저장한다. 바이트지정일 때 Rm의 비트0에서 비트7의 8비트와 비트15의 8비트를 교환한다. Rn의 상위 16비트에는 Rm의 상위 16비트를 그대로 전송한다. 워드지정일 때 Rm의 비트0에서 비트15의 16비트외 비트16에서 비트31의 16비트를 교환한다.
동작
사용예
서식 TAS.B @Rn
설명 범용레지스터 Rn의 내용을 어드레스로 하고, 그 어드레스가 나타내는 바이트데이타를 리드하고, 그 데이터가 0일 때 T=1, 0이 아닐 때 T=0으로 한다. 그후, 비트7을 1로 세트해서 같은 어드레스로 라이트한다. 그동안 버스권은 해방하지 않는다.
동작
사용예
서식 TST Rm, Rn
TST #imm, R0
TST.B #imm, @(R0, GBR)
설명 범용레지스터 Rn의 내용과 Rm의 논리곱을 취하고, 결과가 0일 때 T비트를 세트한다. 결과가 0이 아닐 때 T비트를 클리어한다. Rn의 내용은 변경하지 않는다. 특수형으로써 범용레지스터 R0과 제로확장한 8비트 이미디어트데이타와의 논리곱 또는 GBR상대로 8비트메모리와 8비트메모리의 내용은 변경하지 않는다.
동작
사용예
서식 TRAPA #imm
설명 트랩예외처리를 개시한다. 즉, PC와 SR을 스택에 세이브하고, 지정벡터의 내용으로 표시되는 어드레스로 분기한다. 벡터는 8비트 이미디어트데이타를 제로확장한후 4배한 메모리어드레스 그 자체이다. PC는 다음 명령의 선두어드레스이다. RTE와 조합해서 시스템 콜에 사용한다.
동작
사용예
서식 XOR Rm, Rn
XOR #imm, R0
XOR.B #imm,@(R0, GBR)
설명 범용레지스터 Rn의 내용과 Rm의 배타적논리합을 취하고, 결과를 Rn에 저장한다. 특수형으로써 범용레지스터 R0과 제로확장한 8비트 이미디어트 데이터와 배타적논리합 또는 GBR상대로 8비트 메모리와 8비트 이미디어트데이타와의 배타적논리합이 가능하다.
동작
사용예
서식 XTRCT Rm, Rn
설명 범용레지스터 Rm과 Rn을 연결한 64비트의 내용에서 중앙의 32비트를 잘라내고, 결과를 Rn에 저장한다.
동작
사용예
이상 본 발명자에 의해서 이루어진 발명을 실시예에 따라서 구체적으로 설명했지만 그것에 한정되는 것은 아니고, 그 요지를 이탈하지 않는 범위에서 여러 가지로 변경가능한 것은 물론이다. 예를들면 CAS*의 듀티는 35%대신에 40%이하라도 좋다.
본원에서 개시되는 발명중 대표적인 것에 의해서 얻을 수 있는 효과를 간단히 설명하면 다음과 같다.
(1) 다이나믹RAM을 위한 인터페이스와 스테이틱RAM등의 메모리 및 그밖의 주변회로를 위한 인터페이스를 마이크로컴퓨터에 채용하는 것에 의해 필요한 시스템구축에 유연하게 대응할 수 있다.
(2) CBR리프레시모드 대신에 선택적으로 셀프리프레시모드를 지정할 수 있는 것에 의해 배터리 백업모드와 같은 시스템의 저소비전력을 위한 동작모드에 최적인 다이나믹RAM리프레시동작을 서포트할 수 있다.
(3) 컬럼 어드레스 스트로브신호의 듀티비를 35%와 같은 40%이하의 값으로 하는 것에 의해 액세스시간 45ns의 고속페이지모드를 서포트하는 다이나믹RAM을 예를들면 동작주파수 16MHz의 1클럭사이클단위로 액세스할 수 있다.
(4) 다이나믹RMA의 패리티체크를 할 수 있는 기능을 내장하는 것에 의해 하드디스크드라이브 등에 고신뢰도가 요구되는 시스템 으로의 대응을 용이하게 할 수 있다.
(5) 리니어어드레스공간을 각각에 칩셀렉트신호를 할당해서 여러개의 영역으로 분할하고, 소정의 영역에 대응되는 칩셀렉트신호를 상기 다이나믹RAM을 위한 스트로브신호와 멀티플렉스로써 출력하는 것, 논멀티플렉스 또는 필요에 따라서 멀티플렉스된 어드레스신호를 출력할 수 있는 어드레스신호 출력단자를 채용하는 것 및 선택적으로 어드레스신호를 출력할 수 있는 데이터의 입출력단자를 채용하는 것에 의해 외부단자수의 증대를 극력 억제해서 마이크로컴퓨터의 상기 고기능화를 실현할 수 있다.
(6) 상기 영역내에 있어서의 액세스단위비트수(예를들면 8비트단위의 액세스인지 16비트단위의 액세스인지)를 액세스대상 어드레스신호에 포함되는 소정의 비트로 선택적으로 전환하도록 하는 것은 1개의 영역중에 임의의 수의 8비트/16비트의 메모리를 혼재시켜서 이용할 수 있게 된다.

Claims (17)

  1. 어드레스단자, 데이터단자, 로우 어드레스 스트로브 신호 입력단자 및 컬럼 어드레스 스트로브 신호 입력단자를 구비한 어드레스 멀티플렉스 방식의 제1메모리, 어드레스단자, 데이터단자 및 칩셀렉트 신호 입력단자를 구비한 어드레스 논멀티플렉스방식의 제2메모리 및 상기 제1 및 제2 메모리의 어드레스단자에 결합된 어드레스 출력단자, 상기 제1 및 제2메모리의 데이터단자에 결합된 외부단자, 상기 제1메모리의 상기 로우 어드레스 스트로브 신호 입력단자에 결합된 로우 어드레스 스트로브 신호 출력단자, 사기 제1메모리의 컬럼 어드레스 스트로브 신호 입력단자에 결합된 컬럼 어드레스 스트로브 신호 출력단자 및 상기 제2메모리의 칩셀렉트신호 입력단자에 결합된 칩셀렉트신호 출력단자를 갖는 싱글칩 마이크로컴퓨터를 포함하는 마이크로 컴퓨터 시스템으로서, 상기 싱글 마이크로 컴퓨터는 중앙처리장치, 상기 중앙처리장치에 결합된 어드레스버스, 상기중앙처리장치에 결합된 데이터버스, 상기 어드레스버스와 상기 어드레스 출력단자 사이에 결합되고, 상기 제2메모리에 대한 액세스를 나타내는 제1제어신호에 응답해서 상기 중앙처리장치에서 받은 어드레스신호를 상기 어드레스 출력단자의 각각으로 선택적으로 공급하고, 상기 제1메모리에 대한 액세스를 나타내는 제2제어신호에 응답해서 상기 중앙처리장치에서 받은 어드레스신호를 로우 어드레스신호 및 컬럼 어드레스신호가 멀티플렉스된 멀티플렉스 어드레스로서 상기 어드레스 출력단자내의 여러개로 선택적으로 공급하는 어드레스 출력회로, 상기 외부단자에 결합된 입력과 상기데이타버스에 결합된 출력을 갖는 데이터 입력회로, 상기 외부단자에 결합된 출력과 제1 및 제2단자를 갖는 멀티플렉서, 상기 어드레스버스에 결합된 입력과 멀티플렉서에 결합된 출력을 갖는 어드레스 출력회로, 상기 데이터버스에 결합된 입력과 상기 멀티플렉서에 결합된 출력을 갖는 데이터 출력회로, 상기 제1메모리의 액세스에 응답해서 로우 및 컬럼 어드레스 스트로브 신호를 상기 로우 및 컬럼 어드레스 스트로브 신호 출력단자의 각각으로 선택적으로 출력하고, 상기 제2메모리의 액세스에 응답해서 칩셀렉트신호를 상기 칩셀렉트신호 출력단자로 선택적으로 출력하는 스트로브 생성회로 및 상기 어드레스버스에 결합되고, 상기 제1메모리 및 상기 제2메모리로의 액세스에 응답해서 상기 어드레스 출력회로로 상기 제1 및 제2제어신호를 선택적으로 출력하는 버스 스테이트 컨트롤러를 더 포함하고, 상기 버스 스테이트 컨트롤러는 제1제어비트와 제2제어비트를 포함하고, 상기 제1제어비트는 상기 외부단자가 상기 제1 및 제2메모리의 데이터의 입출력에 사용되고 있는 바와 같이 상기 멀티플렉서의 상기 제2입력이 그의 출력에 결합되어 있는 것을 나타내는 제1상태로 되고, 상기 제2제어비트는 상기 버스 스테이트 컨트롤러가 상기 제1메모리로의 액세스에 응답해서 상기 어드레스 출력회로로 상기 제2제어신호를 출력하도록 제1상태로 되는 마이크로 컴퓨터 시스템.
  2. 제1항에 있어서, 상기 제1메모리는 다이나믹형 랜덤 액세스 메모리를 포함하고, 상기 제2메모리는 스테이틱형 랜덤 액세스 메모리와 리드 온리 메모리중의 한쪽을 포함하는 마이크로 컴퓨터 시스템.
  3. 어드레스 입력단자, 데이터단자 및 칩셀릭트신호 입력단자를 구비한 논 멀티플렉스 어드레스에 의해 액세스되는 메모리, 어드레스.데이타 공용단자, 칩셀렉트신호 입력단자, 어드레스 홀드신호를 받기 위한 단자를 구비한 주변장치 및 상기 메모리의 상기 어드레스 입력단자에 결합된 어드레스 출력단자, 상기 메모리의 데이터단자와 상기 주변장치의 어드레스/데이타 공용단자에 결합된 외부단자, 상기 주변장치의 상기 단자에 결합된 어드레스 홀드신호 출력단자, 상기 메모리의 상기 칩셀렉트신호 입력단자에 결합된 제1칩실렉트신호 출력단자 및 상기 주변장치의 칩셀렉트신호 입력단자에 결합된 제2칩셀렉트신호 출력단자를 갖는 싱글 칩 마이크로 컴퓨터를 포함하는 마이크로 컴퓨터 시스템으로서, 상기 싱글칩 마이크로 컴퓨터는 중앙처리장치, 상기 중앙처리장치에 결합된 어드레스버스, 상기 중앙처리장치에 결합된 데이터버스, 상기 어드레스버스와 상기 어드레스 출력단자 사이에 결합되고, 상기 메모리에 대한 액세스를 나타내는 제1제어신호에 응답해서 상기 중앙처리장치에서 받은 어드레스신호를 상기 어드레스 출력단자의 각각으로 선택적으로 공급하고, 어드레스 멀티플렉스형 메모리에 대한 액세스를 나타내는 제2제어신호에 응답해서 상기 중앙처리장치에서 받은 어드레스신호를 로우어드레스신호 및 컬럼 어드레스신호가 멀티플렉스된 멀티플렉스 어드레스로서 상기 어드레스 출력단자 내의 여러개로 선택적으로 공급하는 어드레스 출력회로, 상기 외부단자에 결합된 입력과 상기 데이터버스에 결합된 출력을 갖는 데이터 입력회로, 상기 외부단자에 결합된 출력과 제1입력 및 제2입력을 갖는 멀티플렉서, 상기 어드레스버스에 결합된 입력과 멀티플렉서에 결합된 출력을 갖는 어드레스 출력회로, 상기 데이터버스에 결합된 입력과 상기 멀티플렉서에 결합된 출력을 갖는 데이터 출력회로, 상기 메모리에 대한 액세스에 응답해서 제1칩셀렉트신호를 상기 제1칩셀렉트 출력단자로 선택적으로 출력하고, 상기 주변장치에 대한 액세스에 응답해서 제2칩셀렉트신호를 상기 제2칩셀렉트 출력단자로 선택적으로 출력하고, 상기 주변장치에 대한 액세스에 응답해서 상기 주변장치에 어드레스신호의 홀드 타이밍을 나타내는 어드레스 홀드 신호를 상기 어드레스 홀드신호 출력단자로 선택적으로 출력하는 스트로브 신호 생성회로 및 상기 어드레스버스에 결합되고, 상기 멀티플렉서와 상기 스트로브 신호 생성 회로를 선택적으로 제어하는 버스 스테이트 컨트롤러를 더 포함하고, 상기 버스 스테이트 컨트롤러는 제1제어비트와 제2제어비트를 포함하고, 상기 제1제어비트는 상기 멀티플렉서가 상기 주변장치의 어드레스 및 데이터를 순차 출력하고, 상기 스트로브 신호 생성 회로가 상기 주변장치로의 어드레스출력에 따라서 상기 어드레스 홀드신호를 출력하도록 상기 멀티플렉서와 상기 스트로브 신호 생성회로가 상기 주변장치로의 액세스에 응답해서 제어되는 상태로 되고, 상기 제2제어비트는 상기 어드레스 생성회로가 상기 어드레스 출력단자로 멀티플렉스된 어드레스를 출력하지 않은 상태에 있는 것을 나타내는 상태로 되는 마이크로 컴퓨터 시스템.
  4. 어드레스 입력단자, 데이터단자, 로우 어드레스 스트로브 신호 입력단자 및 컬럼 어드레스 스트로브 신호 입력단자를 갖고, 멀티플렉스된 어드레스에 의해 액세스되는 제1메모리, 어드레스 입력단자, 데이터단자 및 칩셀렉트신호 입력단자를 갖고, 논 멀티플렉스의 어드레스에 의해 액세스되는 제2메모리 및 1칩 마이크로 컴퓨터를 포함하는 마이크로 컴퓨터 시스템으로서, 1칩 마이크로 컴퓨터는 상기 제1 및 상기 제2메모리의 상기 어드레스 입력단자에 결합된 어드레스 출력단자, 상기 제1 및 제2메모리의 상기 데이터단자에 결합된 외부단자, 상기 제1메모리의 상기 로우 어드레스 스트로브 신호 입력단자에 결합된 로우 어드레스 스트로브 신호 출력단자, 상기 제1메모리의 상기 컬럼 어드레스 스트로브 신호 입력단자에 결합된 컬럼 어드레스 스트로브 신호 출력단자, 중앙처리장치, 상기 중앙처리장치에 결합된 어드레스버스, 상기 중앙처리장치에 결합된 데이터버스, 상기 제2메모리의 상기 칩셀렉트신호 입력단자에 결합된 칩셀렉트신호 출력단자, 어드레스 홀드신호 출력단자, 상기 어드레스버스와 어드레스단자 사이에 결합되고, 상기 제2메모리로의 액세스에 응답해서 상기 중앙처리장치에서 받은 어드레스신호를 상기 어드레스 출력단자로 선택적으로 출력하고, 상기 제1멤리로 액세스에 응답해서 상기 중앙처리장치에서 받은 어드레스신호를 로우 및 컬럼 어드레스신호로서 멀티플렉스된 어드레스신호를 선택적으로 상기 어드레스단자의 여러개로 출력하는 제1어드레스 출력회로, 상기 외부단자에 결합된 입력과 상기 데이터버스에 결합된 출력을 갖는 데이터 입력회로, 상기 외부단자에 결합된 출력과 제1 및 제2입력을 갖는 멀티플렉서, 상기 어드레스버스와 상기 멀티플렉서의 상기 제1입력에 결합된 제2어드레스 출력회로, 상기 데이터버스와 상기 멀티플렉서의 상기 제2입력에 결합된 데이터 출력회로, 상기 제1메모리에 대한 액세스에 응답해서 로우 및 컬럼 어드레스 스트로브 신호를 상기 로우 및 컬럼 어드레스 스트로브 신호 출력단자의 각각으로 선택적으로 출력하고, 상기 제2메모리에 대한 액세스에 응답해서 제1칩셀렉트신호를 상기 칩셀렉트 신호 출력단자로 선택적으로 출력하고, 주변장치로의 액세스에 대해서 제2칩셀렉트신호를 상기 칩셀렉트신호 출력단자로 선택적으로 출력하고, 상기 주변장치로의 액세스에 대해서 상기 주변장치에 어드레스신호의 홀드타이밍을 나타내기 위한 어드레스 홀드 신호를 상기 어드레스 홀드 신호 출력단자로 선택적으로 출력하는 기능을 갖는 스트로브 신호 생성회로 및 상기 어들스버스에 결합되고, 상기 제1 및 제2제어 플래그를 갖는 버스스테이트 컨트롤러를 갖고, 상기 제1제어프래그는 상기 제1어드레스 출력회로를 상기 제1메모리에 대한 액세스에 응답해서 상기 멀티플렉스된 어드레스신호를 선택적으로 공급시키는 것을 가능하게 하는 상태로 설정되고, 상기 제2제플래그는 상기 멀티플렉서의 상기 제2입력을 상기 멀티플렉서의 상기 출력에 결합하는 것을 불가능하게 하는 상태로 설정되고, 그것에 의해서 상기 외부단자를 상기 제1 및 제2메모리를 위한 데이터 입출력으로서 이용하는 마이크로 컴퓨터 시스템.
  5. 제4항에 있어서, 상기 제1메모리는 다이나믹형 랜덤 액세스 메모리를 포함하고, 상기 제2메모리는 스테이틱형 랜덤 액세스 메모리와 리드 온리 메모리중의 한쪽을 포함하는 마이크로 컴퓨터 시스템.
  6. 제4항에 있어서, 상기 버스 스테이트 컨트롤러는 상기 제1메모리의 리프레시모드로서 캐스비포 래스(CAS before RAS)리프레시모드와 셀프 리프레시 모드중의 한쪽의 선택을 지시하는 컨트롤비트를 더 갖는 마이크로 컴퓨터 시스템.
  7. 제4항에 있어서, 상기 컬럼어드레스 스트로브 신호의 듀티비가 최대 40%인 마이크로 컴퓨터 시스템.
  8. 제7항에 있어서, 상기 버스 스테이트 컨트롤러는 상기 컬럼 어드레스 스트로브 신호단자에 출력되는 상기 컬럼 어드레스 스트로브 신호의 듀티비가 최대 40% 또는 50%중의 어느 하나를 지정하는 제어레지스터를 갖는 마이크로 컴퓨터 시스템.
  9. 제4항에 있어서, 상기 1칩 마이크로 컴퓨터는 데이터 패리티 생성 체크회로 및 패리티 데이터 입출력단자를 더 포함하고, 상기 패리티 데이터 입출력단자는 상기 1칩 마이크로 컴퓨터에서 출력할 데이터에 대해서 상기 데이터 패리티 생성 체크회로에 의해서 생성된 패리티데이타를 출력하고, 상기 패리티 데이터 입출력단자는 외부에서 공급되는 데이터의 입력시에 상기 데이터 패리티 생성 체크회로로 공급될 사기 외부에서 공급되는 데이터에 대한 데이터 패리티를 받는 마이크로 컴퓨터 시스템.
  10. 제4항에 있어서, 상기 로우 어드레스 및 컬럼 어드레스 스트로브 신호 출력단자는 상기 로우 어드레스 및 컬럼 어드레스 스트로브 신호와 멀티플렉스해서 칩셀렉트신호를 출력하고, 상기 칩셀렉트신호의 각각은 관리가능한 연속된 어드레스공간에서 분할된 여러개의 영역의 각가에 대응하는 칩셀렉트신호인 마이크로 컴퓨터 시스템.
  11. 제10항에 있어서, 상기 버스 스테이트 컨트롤러는 액세스대상 영역에 있어서의 데이터의 비트폭을 액세스 대상 어드레스신호의 소정의 비트에 따라서 선택적으로 지정하는 마이크로 컴퓨터 시스템.
  12. 제4항에 있어서, 상기 버스 스테이트 컨트롤러는 상기 제1메모리의 버스트모드를 지정하는 컨트롤비트를 더 포함하고, 상기 버스트모드는 상기 제1메모리로의 액세스에 있어서 로우 어드레스 스트로브 신호가 일정상태일 때에 컬럼 어드레스 및 컬럼 어드레스 스트로브 신호를 연속적으로 변화시키는 모드로 되는 마이크로 컴퓨터 시스템.
  13. 제12항에 있어서, 상기 버스 스테이트 컨트롤러는 상기 제1메모리가 전회에 액세스되었을 때의 로우 어드레스 신호를 유지하기위한 로우 어드레스 래치회로 및 상기 제1메모리가 전회에 액세스되었을 때와 동일한 로우 어드레스로 액세스하고, 상기 버스트모드에서 액세스할 수 있는지를 결정하기 위해 상기 로우 어드레스 래치내에 유지된 로우 어드레스와 상기 어드레스버스상의 현재의 어드레스신호내의 로우 어드레스신호를 비교하는 로우 어드레스 비교논리를 더 갖는 마이크로 컴퓨터 시스템.
  14. 어드레스 입력단자, 데이터단자 및 칩셀렉트신호 입력단자를 갖는 메모리, 어드레스/데이타 멀티플렉스 단자, 칩셀렉트신호 입력단자 및 어드레스 홀드 신호 입력단자를 갖는 주변회로 및 1칩마이크로 컴퓨터를 포함하는 마이크로 컴퓨터 시스템으로서, 1칩 마이크로 컴퓨터는 상기 메모리의 어드레스 입력단자에 결합된 어드레스 출력단자, 상기 메모리의 데이터단자에 결합된 외부단자, 어드레스 멀티플렉스형 메모리의 로우 어드레스 스트로브 신호 입력단자에 결합가능한 로우 어드레스 스트로브 신호 출력단자, 어드레스 멀티플렉스형 메모리의 컬럼 어드레스 스트로브 신호 입력단자에 결합가능한 컬럼 어드레스 스트로브 신호 출력단자, 중앙처리장치, 상기 중앙처리장치에 결합된 어드레스버스, 상기 중앙처리장치에 결합된 데이터버스, 상기 메모리의 상기 칩셀렉트신호 입력단자에 결합된 칩셀렉트신호 출력단자, 어드레스 홀드 신호 출력단자, 상기 어드레스버스와 어드레스단자 사이에 결합되고, 상기 제2메모리로의 액세스에 응답해서 상기 중앙처리장치에서 받은 어드레스신호를 상기 어드레스 출력단자로 선택적으로 출력하고, 어드레스 멀티플렉스형 메모리로의 액세스에 응답해서 상기 중앙처리장치에서 받은 어드레스신호를 로우 및 컬럼 어드레스신호로서 멀티플렉스된 어드레스신호를 선택적으로 상기 어드레스단자의 여러개로 출력가능한 제1어드레스 출력회로, 상기 외부단자에 결합된 입력과 상기 데이터버스에 결합된 출력을 갖는 데이터입력회로, 상기 외부단자에 결합된 출력과 제1 및 제2입력을 갖는 멀티플렉서, 상기 어드레스버스와 상기 멀티플렉서의 상기 제1입력에 결합된 제2어드레스 출력회로, 상기 데이터버스와 상기 멀티플렉서의 상기 제2입력에 결합된 데이터 출력회로, 어드레스 멀티플렉스형 메모리에 대한 액세스에 응답해서 로우 및 컬럼 어드레스 스트로브 신호를 상기 로우 및 컬럼 어드레스 스트로브 신호 출력단자의 각각으로 선택적으로 출력하고, 상기 메모리에 대한 액세스에 응답해서 제1칩셀렉트신호를 상기 칩셀렉트신호 출력단자로 선택적으로 출력하고, 상기 주변장치로의 액세스에 대해서 제2칩실렉트신호를 상기 칩셀렉트신호 출력단자로 선택적으로 출력하고, 상기 주변장치로의 액세스에 대해서 상기 주변장치에 어드레스신호의 홀드 타이밍을 나타내기 위한 어드레스 홀드 신호를 상기 어드레스 홀드 신호 출력단자로 선택적으로 출력하는 기능을 갖는 스트로브신호 생성회로 및 상기 어드레스버스에 결합되고, 제1 및 제2제어플래그를 갖는 버스 스테이트 컨트롤러를 갖고, 상기 제1제어플래그는 상기 멀티플렉스된 어드레스신호를 선택적으로 공급시키는 것을 불가능하게 하는 상태로 설정되고, 상기 제2제어플래그는 상기 멀티플렉서를 상기 주변장치의 어드레스 및 데이터를 순차 출력하는 것을 가능하게 하고, 또한 상기 스트로브 신호 생성회로를 상기 주변자로의 어드레스출력에 따라서 상기 어드레스 홀드 신호를 출력하는 것을 가능하게 하는 상태로 설정되는 마이크로 컴퓨터 시스템.
  15. 제14항에 있어서, 상기 데이터 입력회로는 상기 데이터버스의 데이터폭보다 작은 데이터가 상기 1칩 마이크로 컴퓨터에 입력된 경우에 데이터폭의 조정을 하는 제1얼라이너를 갖고, 상기 데이터 출력회로는 상기 데이터버스의 데이터폭보다 작은 데이터가 상기 1칩 마이크로 컴퓨터로 출력되는 경우에 데이터폭의 조정을 하는 제2얼라이너를 갖는 마이크로 컴퓨터 시스템.
  16. 어드레스 입력단자, 데이터단자, 로우 어드레스 스트로브 신호 입력단자 및 컬럼 어드레스 스으로브 신호 입력단자를 갖고, 멀티플렉스된 어드레스에서 액세스되는 메모리 및 싱글칩 마이크로 컴퓨터를 포함하는 마이크로 컴퓨터 시스템으로서, 상기 싱글칩 마이크로 컴퓨터는 상기 메모리의 어드레스 입력단자에 결합된 어드레스 출력단자, 상기 메모리의 데이터단자에 결합된 외부단자, 상기 메모리의 상기 로우 어드레스 스트로브 신호 입력단자에 결합된 로우 어드레스 스트로브 신호 출력단자, 상기 메모리의 상기 컬럼 어드레스 스트로브 신호 입력단자에 결합된 컬럼 어드레스 스트로브 신호 출력단자, 중앙처리장치, 상기 중앙처리장치에 결합된 어드레스버스, 상기 중앙처리장치에 결합된 데이터버스, 상기 어드레스버스와 어드레스단자 사이에 결합되고, 상기 제1메모리로의 액세스에 응답해서 상기 중앙처리장치에서 받은 어드레스신호를 로우 및 컬럼 어드레스신호로서 멀티플렉스된 어드레스신호를 선택적으로 상기 어드레스단자의 여러개로 출력하는 어드레스 출력회로, 상기 외부단자에 결합된 입력과 상기 데이터버스에 결합된 출력을 갖는 데이터 입력회로, 상기 메모리에 대한 액세스에 응답해서 로우 및 컬럼 어드레스 스트로브 신호를 상기 로우 및 컬럼 어드레스 스트로브 신호 출력단자의 각각으로 선택적으로 출력하는 스트로브신호 생성회로 및 상기 어드레스버스에 결합되고, 상기 메모리에 대한 액세스에 있어서 로우 어드레스 스트로브 신호가 어서트되고 있는 동안에 컬럼 어드레스 및 컬럼 어드레스 스트로브 신호를 연속적으로 변화시키는 모드로 되는 버스트모드를 지정하는 컨트롤비트를 갖는 버스 스테이트 컨트롤러를 포함하는 마이크로 컴퓨터 시스템.
  17. 제16항에 있어서, 상기 버스 스테이트 컨트롤러는 상기 메모리가 전회에 액세스되었을 때의 로우 어드레스신호를 유지하기 위한 로우 어드레스 래치회로 및 상기 메모리가 전회에 액세스되었을 때와 동일한 로우 어드레스로 액세스하고, 상기 버스트모드에서 액세스할 수 있는지를 결정하기 위해 상기 로우 어드레스 래치내에 유지된 로우 어드레스와 상기 어드레스버스상의 현재의 어드레스신호내의 로우 어드레스신호를 비교하는 로우 어드레스 비교논리를 더 갖는 마이크로 컴퓨터 시스템.
KR1019930022424A 1992-11-06 1993-10-27 마이크로 컴퓨터 및 마이크로 컴퓨터 시스템 KR100279780B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP4322598A JPH06150023A (ja) 1992-11-06 1992-11-06 マイクロコンピュータ及びマイクロコンピュータシステム
JP92-322598 1992-11-06

Publications (2)

Publication Number Publication Date
KR940012150A KR940012150A (ko) 1994-06-22
KR100279780B1 true KR100279780B1 (ko) 2001-02-01

Family

ID=18145497

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019930022424A KR100279780B1 (ko) 1992-11-06 1993-10-27 마이크로 컴퓨터 및 마이크로 컴퓨터 시스템

Country Status (5)

Country Link
US (3) US5530965A (ko)
EP (1) EP0597307B1 (ko)
JP (1) JPH06150023A (ko)
KR (1) KR100279780B1 (ko)
DE (1) DE69324651T2 (ko)

Families Citing this family (86)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR0140571B1 (ko) * 1995-01-19 1998-07-01 김광호 버스제어수단을 구비한 다중프로세서시스템
GB2309559B (en) * 1996-01-27 2000-01-26 Motorola Israel Ltd Microprocessor and system
US5890196A (en) * 1996-03-28 1999-03-30 Motorola, Inc. Method and apparatus for performing page mode accesses
EP0931292A1 (en) * 1996-08-14 1999-07-28 Advanced Micro Devices, Inc. A microcontroller including an internal memory unit and circuitry to generate an associated enable signal
US6031767A (en) * 1996-09-18 2000-02-29 International Business Machines Corporation Integrated circuit I/O interface that uses excess data I/O pin bandwidth to input control signals or output status information
US6260101B1 (en) 1997-03-07 2001-07-10 Advanced Micro Devices, Inc. Microcontroller having dedicated hardware for memory address space expansion supporting both static and dynamic memory devices
US6016537A (en) * 1997-03-07 2000-01-18 Advanced Micro Devices, Inc. Method and apparatus for address multiplexing to support variable DRAM sizes
US5966736A (en) * 1997-03-07 1999-10-12 Advanced Micro Devices, Inc. Multiplexing DRAM control signals and chip select on a processor
US6327640B1 (en) 1997-03-07 2001-12-04 Advanced Micro Devices, Inc. Overlapping peripheral chip select space with DRAM on a microcontroller with an integrated DRAM controller
US6212599B1 (en) * 1997-11-26 2001-04-03 Intel Corporation Method and apparatus for a memory control system including a secondary controller for DRAM refresh during sleep mode
US6862563B1 (en) 1998-10-14 2005-03-01 Arc International Method and apparatus for managing the configuration and functionality of a semiconductor design
US20060168431A1 (en) * 1998-10-14 2006-07-27 Peter Warnes Method and apparatus for jump delay slot control in a pipelined processor
SE512773C2 (sv) * 1998-10-28 2000-05-08 Imsys Ab Metod och anordning för kontroll/access av DRAM-minnen
JP2001067335A (ja) * 1999-06-23 2001-03-16 Denso Corp マイクロコンピュータ
US20020054790A1 (en) * 1999-08-19 2002-05-09 Rockwood Retaining Walls, Inc. Block with multifaceted bottom surface
US6449712B1 (en) 1999-10-01 2002-09-10 Hitachi, Ltd. Emulating execution of smaller fixed-length branch/delay slot instructions with a sequence of larger fixed-length instructions
US6928073B2 (en) * 1999-10-01 2005-08-09 Stmicroelectronics Ltd. Integrated circuit implementing packet transmission
US6826191B1 (en) 1999-10-01 2004-11-30 Stmicroelectronics Ltd. Packets containing transaction attributes
US6633971B2 (en) 1999-10-01 2003-10-14 Hitachi, Ltd. Mechanism for forward data in a processor pipeline using a single pipefile connected to the pipeline
US6553460B1 (en) 1999-10-01 2003-04-22 Hitachi, Ltd. Microprocessor having improved memory management unit and cache memory
US6772325B1 (en) * 1999-10-01 2004-08-03 Hitachi, Ltd. Processor architecture and operation for exploiting improved branch control instruction
US6591369B1 (en) 1999-10-01 2003-07-08 Stmicroelectronics, Ltd. System and method for communicating with an integrated circuit
US7266728B1 (en) 1999-10-01 2007-09-04 Stmicroelectronics Ltd. Circuit for monitoring information on an interconnect
US6298394B1 (en) 1999-10-01 2001-10-02 Stmicroelectronics, Ltd. System and method for capturing information on an interconnect in an integrated circuit
US6567932B2 (en) 1999-10-01 2003-05-20 Stmicroelectronics Limited System and method for communicating with an integrated circuit
US6918065B1 (en) 1999-10-01 2005-07-12 Hitachi, Ltd. Method for compressing and decompressing trace information
US6546480B1 (en) 1999-10-01 2003-04-08 Hitachi, Ltd. Instructions for arithmetic operations on vectored data
US6684348B1 (en) 1999-10-01 2004-01-27 Hitachi, Ltd. Circuit for processing trace information
US6351803B2 (en) 1999-10-01 2002-02-26 Hitachi Ltd. Mechanism for power efficient processing in a pipeline processor
US6732307B1 (en) 1999-10-01 2004-05-04 Hitachi, Ltd. Apparatus and method for storing trace information
US6496905B1 (en) 1999-10-01 2002-12-17 Hitachi, Ltd. Write buffer with burst capability
US6665816B1 (en) 1999-10-01 2003-12-16 Stmicroelectronics Limited Data shift register
US6590907B1 (en) 1999-10-01 2003-07-08 Stmicroelectronics Ltd. Integrated circuit with additional ports
US6457118B1 (en) 1999-10-01 2002-09-24 Hitachi Ltd Method and system for selecting and using source operands in computer system instructions
US6598128B1 (en) 1999-10-01 2003-07-22 Hitachi, Ltd. Microprocessor having improved memory management unit and cache memory
US6530047B1 (en) 1999-10-01 2003-03-04 Stmicroelectronics Limited System and method for communicating with an integrated circuit
US7072817B1 (en) 1999-10-01 2006-07-04 Stmicroelectronics Ltd. Method of designing an initiator in an integrated circuit
US6693914B1 (en) 1999-10-01 2004-02-17 Stmicroelectronics, Inc. Arbitration mechanism for packet transmission
US6701405B1 (en) 1999-10-01 2004-03-02 Hitachi, Ltd. DMA handshake protocol
US6615370B1 (en) 1999-10-01 2003-09-02 Hitachi, Ltd. Circuit for storing trace information
US6542983B1 (en) 1999-10-01 2003-04-01 Hitachi, Ltd. Microcomputer/floating point processor interface and method
US6557119B1 (en) 1999-10-01 2003-04-29 Stmicroelectronics Limited Microcomputer debug architecture and method
US7000078B1 (en) 1999-10-01 2006-02-14 Stmicroelectronics Ltd. System and method for maintaining cache coherency in a shared memory system
US7793261B1 (en) 1999-10-01 2010-09-07 Stmicroelectronics Limited Interface for transferring debug information
US6463553B1 (en) 1999-10-01 2002-10-08 Stmicroelectronics, Ltd. Microcomputer debug architecture and method
US6629207B1 (en) 1999-10-01 2003-09-30 Hitachi, Ltd. Method for loading instructions or data into a locked way of a cache memory
US6487683B1 (en) 1999-10-01 2002-11-26 Stmicroelectronics Limited Microcomputer debug architecture and method
US6412047B2 (en) 1999-10-01 2002-06-25 Stmicroelectronics, Inc. Coherency protocol
US6502210B1 (en) 1999-10-01 2002-12-31 Stmicroelectronics, Ltd. Microcomputer debug architecture and method
US6820195B1 (en) 1999-10-01 2004-11-16 Hitachi, Ltd. Aligning load/store data with big/little endian determined rotation distance control
US6408381B1 (en) 1999-10-01 2002-06-18 Hitachi, Ltd. Mechanism for fast access to control space in a pipeline processor
US6412043B1 (en) 1999-10-01 2002-06-25 Hitachi, Ltd. Microprocessor having improved memory management unit and cache memory
US6859891B2 (en) 1999-10-01 2005-02-22 Stmicroelectronics Limited Apparatus and method for shadowing processor information
US6434665B1 (en) 1999-10-01 2002-08-13 Stmicroelectronics, Inc. Cache memory store buffer
US6779145B1 (en) 1999-10-01 2004-08-17 Stmicroelectronics Limited System and method for communicating with an integrated circuit
US6598177B1 (en) 1999-10-01 2003-07-22 Stmicroelectronics Ltd. Monitoring error conditions in an integrated circuit
US6629115B1 (en) 1999-10-01 2003-09-30 Hitachi, Ltd. Method and apparatus for manipulating vectored data
JP2001142692A (ja) * 1999-10-01 2001-05-25 Hitachi Ltd 2つの異なる固定長命令セットを実行するマイクロプロセッサ、マイクロコンピュータおよび命令実行方法
US6574651B1 (en) 1999-10-01 2003-06-03 Hitachi, Ltd. Method and apparatus for arithmetic operation on vectored data
US7260745B1 (en) 1999-10-01 2007-08-21 Stmicroelectronics Ltd. Detection of information on an interconnect
US6460174B1 (en) 1999-10-01 2002-10-01 Stmicroelectronics, Ltd. Methods and models for use in designing an integrated circuit
US6601189B1 (en) 1999-10-01 2003-07-29 Stmicroelectronics Limited System and method for communicating with an integrated circuit
US6349371B1 (en) 1999-10-01 2002-02-19 Stmicroelectronics Ltd. Circuit for storing information
US6330660B1 (en) 1999-10-25 2001-12-11 Vxtel, Inc. Method and apparatus for saturated multiplication and accumulation in an application specific signal processor
US6557096B1 (en) 1999-10-25 2003-04-29 Intel Corporation Processors with data typer and aligner selectively coupling data bits of data buses to adder and multiplier functional blocks to execute instructions with flexible data types
US6832306B1 (en) 1999-10-25 2004-12-14 Intel Corporation Method and apparatus for a unified RISC/DSP pipeline controller for both reduced instruction set computer (RISC) control instructions and digital signal processing (DSP) instructions
US6408376B1 (en) 1999-10-25 2002-06-18 Intel Corporation Method and apparatus for instruction set architecture to perform primary and shadow digital signal processing sub-instructions simultaneously
US6563746B2 (en) 1999-11-09 2003-05-13 Fujitsu Limited Circuit for entering/exiting semiconductor memory device into/from low power consumption mode and method of controlling internal circuit at low power consumption mode
US6732203B2 (en) * 2000-01-31 2004-05-04 Intel Corporation Selectively multiplexing memory coupling global bus data bits to narrower functional unit coupling local bus
AU2001243463A1 (en) 2000-03-10 2001-09-24 Arc International Plc Memory interface and method of interfacing between functional entities
US7284064B1 (en) 2000-03-21 2007-10-16 Intel Corporation Method and apparatus to determine broadcast content and scheduling in a broadcast system
JP3845814B2 (ja) * 2000-08-10 2006-11-15 株式会社テルミナス・テクノロジー 連想メモリとその検索方法及びルータとネットワークシステム
US7003093B2 (en) * 2000-09-08 2006-02-21 Intel Corporation Tone detection for integrated telecommunications processing
US20020116186A1 (en) * 2000-09-09 2002-08-22 Adam Strauss Voice activity detector for integrated telecommunications processing
US7275254B1 (en) 2000-11-21 2007-09-25 Intel Corporation Method and apparatus for determining and displaying the service level of a digital television broadcast signal
US6890919B2 (en) * 2001-06-26 2005-05-10 Shitij Kapur Atypical antipsychotic agents having low affinity for the D2 receptor
US6625716B2 (en) * 2001-06-28 2003-09-23 Intel Corporation Method apparatus, and system for efficient address and data protocol for a memory
US8943540B2 (en) 2001-09-28 2015-01-27 Intel Corporation Method and apparatus to provide a personalized channel
US20030219113A1 (en) * 2002-05-21 2003-11-27 Bershad Neil J. Echo canceller with double-talk and channel impulse response adaptation
JP4617282B2 (ja) * 2006-08-31 2011-01-19 富士通株式会社 負荷発生装置及び負荷試験方法
US7598166B2 (en) * 2006-09-08 2009-10-06 International Business Machines Corporation Dielectric layers for metal lines in semiconductor chips
US8127113B1 (en) 2006-12-01 2012-02-28 Synopsys, Inc. Generating hardware accelerators and processor offloads
TWI367486B (en) * 2007-12-25 2012-07-01 Ind Tech Res Inst Memory device and refresh method thereof
JP2010113765A (ja) * 2008-11-06 2010-05-20 Elpida Memory Inc 半導体記憶装置
US8074033B1 (en) * 2009-01-12 2011-12-06 Ixys Ch Gmbh Cooperating memory controllers that share data bus terminals for accessing wide external devices
US9152423B2 (en) * 2011-03-25 2015-10-06 Avaya Inc. Method and apparatus for efficient loop instruction execution using bit vector scanning

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4332008A (en) * 1976-03-09 1982-05-25 Zilog, Inc. Microprocessor apparatus and method
JPH0642263B2 (ja) 1984-11-26 1994-06-01 株式会社日立製作所 デ−タ処理装置
JPH0792792B2 (ja) * 1985-08-23 1995-10-09 株式会社日立製作所 デ−タ処理装置
US4757504A (en) * 1986-04-21 1988-07-12 Texas Instruments Incorporated Polyphase parity generator circuit
US5048012A (en) * 1987-04-03 1991-09-10 Advanced Micro Devices, Inc. Data link controller with flexible multiplexer
US5151986A (en) * 1987-08-27 1992-09-29 Motorola, Inc. Microcomputer with on-board chip selects and programmable bus stretching
US5086407A (en) * 1989-06-05 1992-02-04 Mcgarity Ralph C Data processor integrated circuit with selectable multiplexed/non-multiplexed address and data modes of operation
US5440749A (en) * 1989-08-03 1995-08-08 Nanotronics Corporation High performance, low cost microprocessor architecture
JP3024767B2 (ja) * 1989-08-29 2000-03-21 株式会社日立製作所 アドレス供給システム
US5754886A (en) * 1989-08-29 1998-05-19 Hitachi, Ltd. Controller for supplying multiplexed or non-multiplexed address signals to different types of dynamic random access memories
JPH0731850B2 (ja) * 1989-08-31 1995-04-10 日本ビクター株式会社 磁気記録再生装置のつなぎ撮り装置
JPH0398145A (ja) * 1989-09-11 1991-04-23 Hitachi Ltd マイクロプロセッサ
EP0440456B1 (en) * 1990-01-31 1997-01-08 Hewlett-Packard Company Microprocessor burst mode with external system memory
EP0518488A1 (en) * 1991-06-12 1992-12-16 Advanced Micro Devices, Inc. Bus interface and processing system
US5262998A (en) * 1991-08-14 1993-11-16 Micron Technology, Inc. Dynamic random access memory with operational sleep mode
US5262991A (en) * 1991-11-22 1993-11-16 Zilog, Inc. Device with multiplexed and non-multiplexed address and data I/O capability
AU3250393A (en) * 1991-12-17 1993-07-19 Compaq Computer Corporation Apparatus for reducing computer system power consumption
US5414827A (en) * 1991-12-19 1995-05-09 Opti, Inc. Automatic cache flush

Also Published As

Publication number Publication date
EP0597307A1 (en) 1994-05-18
US5987589A (en) 1999-11-16
DE69324651T2 (de) 1999-12-30
EP0597307B1 (en) 1999-04-28
KR940012150A (ko) 1994-06-22
US5748977A (en) 1998-05-05
JPH06150023A (ja) 1994-05-31
DE69324651D1 (de) 1999-06-02
US5530965A (en) 1996-06-25

Similar Documents

Publication Publication Date Title
KR100279780B1 (ko) 마이크로 컴퓨터 및 마이크로 컴퓨터 시스템
US6223265B1 (en) Single-chip microcomputer synchronously controlling external synchronous memory responsive to memory clock signal and clock enable signal
US6622208B2 (en) System and methods using a system-on-a-chip with soft cache
US5619720A (en) Digital signal processor having link ports for point-to-point communication
US6480929B1 (en) Pseudo-concurrency between a volatile memory and a non-volatile memory on a same data bus
JP3955305B2 (ja) 縮小命令セット・コンピュータ・マイクロプロセッサーの構造
US5685005A (en) Digital signal processor configured for multiprocessing
US5634076A (en) DMA controller responsive to transition of a request signal between first state and second state and maintaining of second state for controlling data transfer
JPH0877098A (ja) 制御されたバーストメモリアクセスを備えたデータプロセッサおよびその方法
US6735683B2 (en) Single-chip microcomputer with hierarchical internal bus structure having data and address signal lines coupling CPU with other processing elements
EP0811921B1 (en) Method for accessing memory
JP2007087416A (ja) シングルチップデータ処理装置
JP4114900B2 (ja) システムlsi及び半導体集積回路
JPH02264380A (ja) 集積回路マイクロコントローラ
JP4448917B2 (ja) 半導体集積回路装置、データ処理装置及びマイクロコンピュータ
Salcic et al. Rapid Prototyping Using FPLDS-Vuman Case Study
EP0784823A2 (en) Digital signal processor
JPS5841524B2 (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: 20121023

Year of fee payment: 13

EXPY Expiration of term