KR19980081340A - 데이타전송제어장치, 마이크로컴퓨터 및 데이타처리시스템 - Google Patents

데이타전송제어장치, 마이크로컴퓨터 및 데이타처리시스템 Download PDF

Info

Publication number
KR19980081340A
KR19980081340A KR1019980013034A KR19980013034A KR19980081340A KR 19980081340 A KR19980081340 A KR 19980081340A KR 1019980013034 A KR1019980013034 A KR 1019980013034A KR 19980013034 A KR19980013034 A KR 19980013034A KR 19980081340 A KR19980081340 A KR 19980081340A
Authority
KR
South Korea
Prior art keywords
data transfer
address
data
register
request
Prior art date
Application number
KR1019980013034A
Other languages
English (en)
Inventor
스즈키다카아키
다카스가도모야
나카가와노리오
Original Assignee
가나이츠토무
히다치세사쿠쇼(주)
스즈키진이치로
히다치초엘에스아이엔지니어링(주)
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 가나이츠토무, 히다치세사쿠쇼(주), 스즈키진이치로, 히다치초엘에스아이엔지니어링(주) filed Critical 가나이츠토무
Publication of KR19980081340A publication Critical patent/KR19980081340A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • G06F12/1433Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a module or a part of a module
    • 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/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • G06F13/124Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Bus Control (AREA)
  • Storage Device Security (AREA)
  • Debugging And Monitoring (AREA)
  • Microcomputers (AREA)

Abstract

메모리관리유닛을 갖는 마이크로컴퓨터나 데이타처리시스템에 적용해서 유효한 기술에 관한 것으로서, DMAC에 의한 액세스경로를 거치면 액세스금지영역에 대한 잘못된 액세스에 의해 데이타나 프로그램이 원하지 않게 파괴되거나 OS나 시스템데이타가 자유로이 리드되어 안전성을 유지할 수 없다는 문제점을 해결하기 위해서, 데이타전송원어드레스 및 데이타전송지어드레스가 설정되는 어드레스레지스터,데이타전송원과 데이타전송지의 조합상태를 여러비트에 의해 지정하는 자원선택정보의 저장영역을 포함하는 제어레지스터, 데이타전송요구가 있었을 때 어드레스레지스터에 설정된 데이타전송원어드레스와 데이타전송지어드레스중의 적어도 한쪽이 제어레지스터의 자원선택정보에 의해 지정되는 데이타전송원과 데이타전송지의 조합상태에서 이탈하고 있는 어드레스에러를 검출하는 어드레스에러검출부 및 어드레스에러가 아닌 경우에는 어드레스레지스터 및 제어레지스터의 정보를 사용한 데이타전송제어를 실행하고, 어드레스에러가 검출된 경우에는 데이타전송요구에 따른 데이타전송동작을 억지하는 제어회로를 포함하는 데이타전송제어장치를 마련하였다.
이렇게 하는 것에 의해서, 데이타전송동작에 대한 기억보호에 높은 신뢰성을 얻을 수 있고, 불필요한 데이타전송동작을 생략할 수 있다는 효과가 얻어진다.

Description

데이타전송제어장치, 마이크로컴퓨터 및 데이타처리시스템
본 발명은 DMAC(Direct Memory Access Controller)와 같은 데이타전송제어장치에 있어서의 기억보호기능(메모리보호기능 또는 데이타보호기능이라고도 한다)에 관한 것으로서, 예를 들면 메모리관리유닛을 갖는 마이크로컴퓨터(프로세서 또는 마이크로프로세서라고도 한다)나 데이타처리시스템에 적용해서 유효한 기술에 관한 것이다.
DMAC를 사용하는 것에 의해 데이타전송에 있어서의 마이크로컴퓨터, 프로세서 또는 CPU(Central Processing Unit : 중앙처리장치)의 부담을 경감할 수 있다. DMAC를 사용한 데이타전송에서는 프로세서 또는 CPU가 DMAC내의 전송지어드레스 레지스터 및 전송원어드레스 레지스터에 전송지 및 전송원어드레스 등의 초기설정을 실행하고, 초기설정된 DMAC는 데이타전송요구가 있으면 프로세서 또는 CPU에서 버스권을 획득해서 데이타전송을 실행한다. 이 것에서 명확한 바와 같이, DMAC가 마련되어 있는 경우에는 메모리나 레지스터에 대한 액세스경로가 한개 증가하게 된다.
현재, 컴퓨터시스템의 대부분은 가상기억을 서포트하고 있고, 메모리관리유닛(MMU)에 의해서 기억보호를 실현하는 것이 대부분이다. 따라서, 프로세서나 CPU가 레지스터나 메모리를 액세스하는 경우에는 메모리관리유닛에 의한 기억보호가 실현되게 된다.
그러나, 컴퓨터시스템이 DMAC를 포함하는 경우, DMAC에 의한 데이타전송지어드레스데이타나 전송원어드레스데이타는 CPU나 프로세서가 데이타로서 DMAC내의 레지스터에 설정하기 때문에 메모리관리유닛에 의한 어드레스변환시의 기억보호는 작용하지 않는다. 이것을 바꿔말하면, DMAC가 MMU와 외부입출력회로 사이에 배치될 때 DMAC에 설정된 전송원이나 전송지어드레스는 MMU를 거치지 않고 그대로 물리어드레스로서 이용되어 MMU에 의한 보호기능이 작용하지 않는다. 이것에 의해 DMAC에 의한 액세스경로를 거치면 액세스금지영역에 대한 잘못된 액세스에 의해 데이타나 프로그램이 원하지 않게 파괴되거나 OS(Operating System)나 시스템데이타가 자유로이 리드되어 안전성을 유지할 수 없는 등의 문제를 발생시키는 것이 염려된다.
일본국특허공개공보 소화62-191950호에는 DMAC의 출력어드레스와 보호어드레스의 비교에 의해서 기억보호를 실행하는 기술이 기재되어 있고, 일본국특허공개공보 평성1-250162호에는 DMAC의 출력어드레스와 라이트보호어드레스의 비교에 의해 메모리의 라이트보호를 실행하는 제어방식에 대해서 기재되어 있다.
일본국특허공개공보 평성6-266648호에는 DMAC와 같은 직접메모리액세스 제어기구에서 출력되는 어드레스가 주기억상의 데이타전송 허용범위를 초과했을 때, 상기 직접메모리액세스 제어기구에 의한 주메모리액세스가 중단되도록 한 기술이 기재되어 있다.
일본국특허공개공보 평성2-297235호에는 메인메모리의 어드레스에 대응해서 그의 어드레스의 영역이 프로그램영역인지 데이타영역인지를 나타내는 영역정보를 보유하고, 메인메모리의 프로그램페치어드레스에 대응하는 상기 영역정보가 데이타영역을 나타낼 때에는 이상(異常)을 통지하고, 메인메모리로의 라이트어드레스에 대응하는 상기 영역정보가 프로그램영역을 나타낼 때에는 라이트요구를 억지하는 메모리데이타보호회로의 기술이 기재되어 있다.
일본국특허공개공보 평성6-119250호에는 DMA전송제어를 실행하는 디바이스의 출력어드레스신호의 일부를 일정값으로 강제하는 것에 의해서 기억보호를 실행하는 기술이 기재되어 있다.
그러나, 이들 종래기술은 DMAC와 같은 디바이스가 데이타전송을 개시해서 어드레스신호를 출력한 후에 상기 디바이스의 외부에서 기억보호를 실현하고자 하는 것이다. 즉, 기억보호에 위반하는 경우에도 DMAC와 같은 디바이스 그 자체는 데이타전송동작을 일단 개시하게 된다. 기억보호위반으로 되는 DMAC 그 자체의 동작을 억지할 수는 없기 때문에 DMAC와 같은 회로를 사용한 동작에 낭비가 있다.
또, 기억보호는 보호어드레스나 라이트보호어드레스와 같이 특별히 설정된 어드레스범위에 대해서 실행되기 때문에, 그들 보호어드레스 등의 설정을 잘못하거나 또는 CPU의 폭주 등에 의해 그들 보호어드레스 등이 원하지 않게 갱신된(updated) 경우에는 기억보호를 실현할 수 없고 기억보호의 신뢰성은 비교적 낮다고 고려된다. 일본국특허공개공보 평성6-119250호에 기재된 바와 같이, DMA전송제어를 실행하는 디바이스의 출력어드레스신호의 일부를 일정값으로 갱신하는 경우에도 그의 일정값의 정보의 설정에러 등이 있으면 사정은 마찬가지이다.
본 발명의 제1 목적은 기억보호위반인 경우에 스스로 데이타전송동작을 억지할 수 있는 데이타전송제어장치를 제공하는 것이다.
본 발명의 제2 목적은 기억보호의 신뢰성을 향상시킬 수 있는 데이타전송제어장치를 제공하는 것이다.
본 발명의 제3 목적은 기억보호위반을 발생시키는 데이타전송요구가 있더라도 데이타전송제어장치에 의한 데이타전송동작의 낭비를 극력 억제할 수 있고, 데이타처리효율의 향상에 기여할 수 있는 마이크로컴퓨터, 마이크로프로세서 더 나아가서는 데이타처리시스템을 제공하는 것이다.
본 발명의 제4 목적은 데이타전송제어장치에 의한 기억보호라는 점에 있어서, 시스템동작의 안전성을 향상시킬 수 있는 마이크로컴퓨터, 마이크로프로세서 더 나아가서는 데이타처리시스템을 제공하는 것이다.
본 발명의 상기 및 그 밖의 목적과 새로운 특징은 본 명세서의 기술 및 첨부도면에서 명확해 질 것이다.
도 1은 본 발명의 1예에 관한 마이크로컴퓨터의 블럭도,
도 2는 DMAC의 전체적인 구성을 도시한 블럭도,
도 3은 데이타전송채널의 상세를 도시한 블럭도,
도 4는 채널제어레지스터의 1예의 포맷도,
도 5는 채널인에이블비트의 설명도,
도 6은 자원선택정보의 설명도,
도 7은 트랜스퍼엔드비트의 설명도,
도 8은 수신지어드레스모드정보의 설명도,
도 9는 소오스어드레스모드정보의 설명도,
도 10은 전송사이즈정보의 설명도,
도 11은 인터럽트인에이블비트의 설명도,
도 12는 전송모드비트의 설명도,
도 13은 연산레지스터의 1예의 포맷도,
도 14는 우선모드정보의 설명도,
도 15는 어드레스에러플래그의 설명도,
도 16은 NMI플래그의 설명도,
도 17은 마스터인에이블비트의 설명도,
도 18은 DMAC에 의한 기억보호를 위한 어드레스에러검출부와 레지스터부의 접속관계를 도시한 블럭도,
도 19는 마이크로컴퓨터가 29비트의 물리어드레스에 의해 관리하는 물리어드레스공간의 설명도,
도 20은 소오스어드레스비교부에 의한 소오스어드레스의 어드레스에러상태를 도시한 설명도,
도 21은 수신지어드레스비교부에 의한 수신지어드레스의 어드레스에러상태를 도시한 설명도,
도 22는 DMAC의 1예의 동작흐름도,
도 23은 기억보호에 의한 DMA전송억지의 경우의 1예의 타이밍도,
도 24는 싱글어드레스모드와 버스트모드가 지정되어 있는 경우에 어드레스에러가 검출되지 않을 때 전송요구의 발생을 대기해서 데이타전송을 실행할 때의 1예의 타이밍도,
도 25는 듀얼어드레스모드와 버스트모드가 지정되어 있는 경우에 어드레스에러가 검출되지 않을 때 전송요구의 발생을 대기해서 데이타전송을 실행할 때의 1예의 타이밍도,
도 26은 듀얼어드레스모드와 사이클스틸모드가 지정되어 있는 경우에 어드레스에러가 검출되지 않을 때 전송요구의 발생을 대기해서 데이타전송을 실행할 때의 1예의 타이밍도.
본원에 있어서 개시되는 발명중 대표적인 것의 개요를 간단히 설명하면 다음과 같다.
즉, 데이타전송제어회로(8)은 데이타전송원과 데이타전송지의 조합상태(예를 들면 메모리와 직렬인터페이스회로)를 여러비트에 의해 지정하는 자원선택(resource select)정보(RS0∼RS3)의 저장영역을 제어레지스터(CHCRn)에 갖는다. 상기 제어회로(8)은 어드레스레지스터(SARn, DARn)에 초기적으로 설정된 전송지어드레스, 전송원어드레스 및 자원선택정보를 참조하여 전송원어드레스와 데이타전송지어드레스중의 적어도 한쪽이 상기 자원선택정보에 따라 지정되는 데이타전송원과 데이타전송지의 조합상태에서 이탈하고 있는 것을 나타내는 어드레스에러를 어드레스에러검출부(96)에 의해 검출해서 데이타전송의 허가/금지가 데이타전송제어회로(8)의 내부에서 판단된다. 데이타전송이 허가로 판단된 경우, 데이타전송제어장치는 버스권요구신호(BREQ)와 같은 신호를 어서트해서 CPU 등의 다른 버스마스터에서 버스권을 획득하고 그 후 데이타전송동작을 개시한다. 데이타전송이 금지로 판단된 경우, 데이타전송제어장치는 버스권요구신호를 어서트하지 않고 그 대신에 예를 들면 어드레스에러 인터럽트신호를 어서트하고 예를 들면 중앙처리장치(3)에 그와 같은 어드레스에러에 대한 처리를 전달할 수 있다.
상기한 수단에 있어서, 데이타전송제어장치가 규정하는 기억보호위반은 상기 어드레스에러로서 검출된다. 상기 어드레스레지스터 및 제어레지스터에 의해서 구성되는 하나의 데이타전송채널의 데이타전송용도(데이타전송원과 전송지의 조합)는 자원선택정보에 의해 결정된다. 그의 데이타전송용도에 비추어 전송지어드레스 또는 전송원어드세스의 적어도 한쪽이 이탈하는 경우에는 데이타전송동작의 개시가 억지된다. 따라서, 하나의 데이타전송채널에 할당된 전송원의 회로와 전송지의 회로의 조합에 대해서 어드레스레지스터에 설정할 전송원이나 전송지어드레스가 설정에러나 노이즈 더 나아가서는 시스템의 폭주 등에 기인해서 이탈한 경우에는 데이타전송동작은 억지된다. 또, 자원선택정보의 설정에러나 원하지 않는 갱신이 발생한 경우에 어드레스레지스터에 설정할 전송원이나 전송지어드레스가 정상이더라도 마찬가지로 데이타전송동작은 억지된다.
이와 같이, 데이타전송가능한 전송원과 전송지의 조합의 상태는 자원선택정보의 값에 따라서 미리 정의되어 있고, 상기 어드레스에러검출부는 그 정의된 내용에 따른 어드레스에러의 판정논리를 갖고, 그 논리구성에 따라서 데이타전송제어장치에 의한 데이타전송 제어불가능한 어드레스에러를 제어레지스터의 자원선택정보와 어드레스레지스터의 전송원어드레스, 전송지어드레스에 따라서 검출한다. 자원선택정보와 어드레스레지스터의 쌍방의 설정정보가 정합해서 비로소 데이타전송이 개시되므로, 데이타전송제어장치에 의한 데이타전송동작에 대한 기억보호에 높은 신뢰성을 얻을 수 있다. 또한, 데이타전송제어장치에 의한 기억보호위반에 대해서 데이타전송제어장치 스스로가 데이타전송동작을 억지할 수 있어 불필요한 데이타전송동작을 줄일 수 있다.
상기 수단의 더욱 상세한 상태에 의하면, 데이타전송제어장치(8)은 각각이 어드레스레지스터(SARn, DARn) 및 제어레지스터(CHCRn)을 갖는 여러개의 데이타전송채널, 상기 여러개의 데이타전송채널에 포함되는 어드레스레지스터 및 제어레지스터에 접속되는 내부버스(80), 상기 내부버스를 외부와 인터페이스시키는 버스인터페이스회로(81) 및 데이타전송요구에 따라서 상기 여러개의 데이타전송채널중의 하나의 데이타전송채널을 사용해서 상기 버스인터페이스회로를 거쳐 전송제어를 실행하는 제어회로(82∼85)를 갖는다. 상기 어드레스레지스터는 데이타전송원어드레스 및 데이타전송지어드레스가 설정되는 레지스터이다. 상기 제어레지스터는 상기 제어레지스터를 포함하는 데이타전송채널에 할당되는 데이타전송요구원과 그 요구원으로부터의 데이타전송요구에 응답하는 데이타전송원 및 데이타전송지의 조합상태가 여러비트에 의해 지정되는 자원선택정보(RS0∼RS3)의 저장영역을 갖는다. 상기 어드레스레지스터에 설정된 데이타전송원어드레스와 데이타전송지어드레스중의 적어도 한쪽이 상기 데이타전송채널의 상기 제어레지스터에 포함되는 상기 자원선택정보에 의해 지정되는 데이타전송원과 데이타전송지의 조합상태에서 이탈하고 있는 것을 나타내는 어드레스에러를 검출하는 어드레스에러검출부(96)을 갖는다. 상기 제어회로는 데이타전송요구가 있었을 때 그 요구원에 응답할 데이타전송채널을 상기 제어레지스터에 설정된 자원선택정보에서 판정한다. 그리고, 상기 제어회로는 상기 어드레스에러가 검출되지 않는 것을 조건으로 상기 데이타전송요구에 따른 데이타전송채널을 사용해서 데이타전송동작을 실행한다. 상기 자원선택정보에 포함되는 곳의 전송요구원을 지시하는 정보는 전송요구의 종별을 지시하는 정보와 동일 의의이다. 이 상태에 있어서, 상기 자원선택정보는 상기 데이타전송채널에 할당되는 데이타전송요구원 또는 데이타전송요구의 종별을 지정하는 것으로도 된다. 즉, 데이타전송요구에 대해서 어떤 데이타전송채널을 사용할지는 자원선택정보를 참조해서 결정된다. 데이타전송요구는 예를 들면 특정 주변회로로부터의 데이타전송요구 또는 중앙처리장치에 의한 기동요구(제어레지스터의 전송인에이블비트(DE)의 설정) 등으로 된다. 예를 들면, 데이타전송요구원은 요구원의 종류마다 개별화된 데이타전송요구신호 또는 요구원을 나타내는 부가정보 등에 의해서 명확하게 된다. 상기 전송인에이블비트의 설정을 전송요구로 하는 경우, 전송요구원은 중앙처리장치로서 상기 전송인에이블비트의 설정상태를 기동요구 또는 기동요구원으로 하는 값이 자원선택정보에 설정되어 있다.
여러개의 데이타전송채널을 배타적으로 동작시킬 때, 그의 우선순위를 가변할 수 있도록 하기 위해서는 상기 내부버스에 접속되고 수개의 데이타전송채널에 공통의 연산레지스터(MDAOR)을 더 마련하고, 이 연산레지스터에는 데이타전송요구가 경합할 때 그들 데이타전송요구를 실행하는 데이타전송채널의 우선순위를 결정하기 위한 우선(priority)정보(PR0, PR1)의 저장영역을 할당해 둔다. 이 때, 상기 제어회로는 상기 데이타전송채널의 판정에 있어서 여러개의 데이타전송채널에 대한 데이타전송요구가 경합할 때, 상기 우선정보에 따라서 우선순위가 높은 데이타전송채널에 대한 데이타전송요구를 우선시킨다.
상기 데이타전송제어장치를 채용한 마이크로컴퓨터(1)은 중앙처리장치(3), 상기 중앙처리장치가 출력하는 논리어드레스를 물리어드레스로 변환하는 메모리관리유닛(40, 41, 44), 상기 데이타전송제어장치(8), 상기 메모리관리유닛에서 출력되는 물리어드레스 또는 상기 데이타전송제어장치에서 출력되는 물리어드레스에 따라서 버스액세스사이클을 제어하는 버스스테이트콘트롤러(51), 상기 버스스테이트콘트롤러에 주변버스(56, 57)을 거쳐서 접속된 내장주변회로(70∼74) 및 상기 버스스테이트콘트롤러에 결합된 외부버스인터페이스회로(6)을 포함한다. 이 때, 상기 중앙처리장치는 상기 메모리관리유닛을 거쳐서 상기 데이타전송제어장치의 각 레지스터에 대한 설정을 실행하고, 상기 데이타전송제어장치는 데이타전송요구에 응답해서 데이타전송을 실행할 때, 상기 버스스테이트콘트롤러에 버스권요구신호(BREQ)를 어서트하고, 이에 응답하는 버스권승인신호(BACK)가 버스스테이트콘트롤러에서 어서트되는 것을 대기해서 데이타전송을 개시한다.
상기 마이크로컴퓨터는 1개의 반도체기판에 집적회로화해서 구성할 수 있다.
상기 마이크로컴퓨터를 채용한 데이타처리시스템은 상기 마이크로컴퓨터와 함께 이 마이크로컴퓨터의 상기 외부버스인터페이스회로에 결합된 외부버스(60, 61)과 상기 외부버스에 결합된 외부주변회로(62∼65)를 포함한다.
상기 마이크로컴퓨터는 메모리관리유닛에 의한 어드레스변환시에 중앙처리장치가 관리하는 어드레스공간에 대해 기억보호를 실현하고, 예를 들면 사용자모드에 있어서 시스템공간을 액세스금지하거나 한다. 상기 메모리관리유닛에 의한 기억보호는 액세스어드레스에 대해서 작용한다. 이 때, 데이타전송제어장치(8)은 상술한 바와 같이, 중앙처리장치(3)이 상기 어드레스레지스터에 데이타로서 설정한 전송지어드레스 및 전송원어드레스에 자원선택정보의 전송상태에 위반하는 설정이 실행될 때, 그 전송지어드레스 및 전송원어드레스에 관한 데이타전송의 기동을 억지한다. 따라서, 메모리관리유닛의 기억보호가 직접적으로 작용하지 않는 데이타전송제어장치에 의한 데이타전송동작에 대해서도 액세스금지영역의 데이타보호를 실행할 수 있고, 데이타처리시스템의 동작의 안전성을 높일 수 있다. 또한, 데이타전송제어장치에 의한 기억보호위반에 대해서 데이타전송제어장치 스스로가 데이타전송동작을 억지할 수 있고 불필요한 데이타전송동작을 줄일 수 있으므로, 데이타처리시스템 및 마이크로컴퓨터에 의한 데이타처리효율의 향상에 기여할 수 있다.
상기 데이타처리시스템에 응용된 마이크로컴퓨터내장의 데이타전송제어장치에 있어서의 상기 어드레스에러검출부가 어드레스에러로서 검출하는 상태로서는 데이타전송요구에 따른 데이타전송원이 내장주변회로일 때 어드레스레지스터에 설정되어 있는 전송원어드레스가 외부주변회로를 지정하고 있는 상태, 데이타전송요구에 따른 데이타전송원이 외부주변회로일 때 어드레스레지스터에 설정되어 있는 전송원어드레스가 내부주변회로를 지정하고 있는 상태, 데이타전송요구에 따른 데이타전송지가 내장주변회로일 때 어드레스레지스터에 설정되어 있는 전송지어드레스가 외부주변회로를 지정하고 있는 상태 및 데이타전송요구에 따른 데이타전송지가 외부주변회로일 때 어드레스레지스터에 설정되어 있는 전송지어드레스가 내부주변회로를 지정하고 있는 상태로 할 수 있다. 이 어드레스에러상태는 마이크로컴퓨터의 내부공간과 외부공간을 잘못 인식한 치명적인 기억보호위반에 의한 오동작을 방지할 수 있다.
《마이크로컴퓨터의 개요》
도 1에는 본 발명의 1예에 관한 마이크로컴퓨터(마이크로프로세서 또는 프로세서라고도 한다)가 도시된다. 동일 도면에 도시된 마이크로컴퓨터(1)은 특히 제한되지 않지만 단결정실리콘과 같은 1개의 반도체기판에 집적회로화되어 구성된다. 마이크로컴퓨터(1)은 부동소수점유닛(FPU라고도 한다)(2)를 갖는다. 또, 마이크로컴퓨터(1)은 정수를 조작할 수 있는 중앙처리장치(CPU라고도 한다)(3)을 구비한다. 마이크로컴퓨터(1)은 특히 제한되지 않지만, 16비트고정길이 명령세트를 구비한 32비트RISC(Reduced Instruction Set Computer : 축소명령세트컴퓨터)아키텍쳐를 갖는다.
도 1에 있어서 (4)로 나타내는 것은 어드레스변환 캐시유닛이다. CPU(3)에 의한 명령액세스와 데이타액세스를 병렬화할 수 있도록 어드레스변환 캐시유닛(4)는 명령용 명령어드레스변환버퍼(명령TLB라고도 한다)(40)과 데이타용 일체화(unified)어드레스변환버퍼(일체화TLB라고도 한다)(41)을 각각 갖고, 또 명령 캐시메모리(42)와 데이타캐시메모리(43)도 각각 개별화되어 있다. 캐시 어드레스변환버퍼 콘트롤러(캐시TLB콘트롤러라고도 한다)(44)는 어드레스변환 캐시유닛(4)를 전체적으로 제어한다.
도 1에 있어서 (5)로 나타내는 것은 버스스테이트콘트롤러로서, 32비트의 데이타버스(50) 및 29비트의 어드레스버스(51)을 거쳐서 상기 어드레스변환 캐시유닛(4)에 접속되어 있다. 이 버스스테이트콘트롤러(5)에는 데이타버스(54) 및 어드레스버스(55)를 거쳐서 데이타전송제어장치로서의 DMAC(8)이 접속되어 있다.
마이크로컴퓨터(1)에 있어서, 상기 CPU(3) 및 DMAC(8)이 버스마스터모듈을 구성한다. 마이크로컴퓨터(1)에 의한 외부액세스는 64비트의 데이타버스(52) 및 어드레스버스(53)을 거쳐서 상기 버스스테이트콘트롤러(5)에 접속된 외부버스인터페이스회로(6)에서 실행한다. 외부버스인터페이스회로(6)은 외부데이타버스(60) 및 외부어드레스버스(61)에 접속된다.
마이크로컴퓨터(1)은 16비트의 주변데이타버스(56) 및 주변어드레스버스(57)에 접속된 내장주변회로로서, 클럭펄스생성기(CPG라고도 한다)(70), 인터럽트제어회로(71), 직렬통신인터페이스 콘트롤러(SCI1, SCI2)(72), 실시간클럭회로(73) 및 타이머(74)를 갖는다. 그들 주변회로는 상기 버스스테이트콘트롤러(5)를 거쳐서 CPU(3) 또는 DMAC(8)에 의해서 액세스된다.
상기 버스스테이트콘트롤러(5)는 CPU(3)이나 DMAC(8)에 의한 액세스대상회로(액세스대상으로 되는 어드레스영역)에 따라서, 액세스데이타사이즈, 액세스시간, 대기스테이트의 삽입제어 등을 실행한다. 도 1에 있어서 (58)로 나타내는 것은 데이타버퍼이다.
상기 CPU(3)은 명령을 페치할 때 32비트의 명령어드레스버스(30)으로 명령어드레스를 출력하고, 명령데이타버스(31)로 출력된 명령을 페치한다. 또, CPU(3)은 32비트의 데이타어드레스버스(32)로 데이타어드레스를 출력하고, 32비트의 데이타버스(33)을 거쳐서 데이타의 리드(로드)를 실행하고, 32비트의 데이타버스(34)를 거쳐서 데이타의 라이트(저장)를 실행한다. 상기 명령어드레스 및 데이타어드레스는 논리어드레스이다.
상기 FPU(2)는 특히 제한되지 않지만, 데이타캐시메모리(43) 등을 액세스하기 위한 메모리어드레싱능력을 구비하고 있지 않다. CPU(3)이 FPU(2) 대신에 데이타를 액세스하기 위한 어드레싱동작을 실행한다. 이것은 FPU(2)의 메모리어드레싱회로의 필요성을 없애고 칩면적을 절약하기 위해서이다. FPU(2)로의 데이타의 로드는 32비트의 데이타버스(33)과 32비트의 데이타버스(35)를 거쳐서 실행하고, FPU(2)로부터의 데이타의 저장은 64비트의 데이타버스(36)을 거쳐서 실행한다. FPU(2)에서 CPU(3)으로의 데이타전송은 상기 64비트데이타버스(36)의 하위 32비트를 사용해서 실행된다.
CPU(3)은 FPU(2)를 위해 데이타페치를 실행할 뿐만 아니라 FPU(2)를 위한 부동소수점명령을 포함하는 모든 명령을 페치한다. CPU(3)이 페치한 부동소수점명령은 32비트의 데이타버스(34)를 거쳐서 CPU(3)에서 FPU(2)에 부가된다.
마이크로컴퓨터(1)은 특히 제한되지 않지만, 32비트의 가상어드레스에 의해 규정되는 가상어드레스공간과 29비트의 물리어드레스에 의해 규정되는 물리어드레스공간을 취급한다. 가상어드레스를 물리어드레스로 변환하기 위한 어드레스변환정보는 가상페이지번호와 그것에 대응되는 물리페이지번호를 포함하고 있다. 어드레스변환테이블은 마이크로컴퓨터(1)의 도시를 생략한 외부메모리에 형성된다. 도시를 생략한 어드레스변환테이블의 어드레스변환정보중 최근 이용된 것이 상기 명령TLB(40)과 일체화TLB(41)에 저장되게 된다. 그 제어는 예를 들면 마이크로컴퓨터(1)의 OS가 실행한다.
상기 데이타용 일체화TLB(41)은 데이타 및 명령의 어드레스변환정보를 최대 64엔트리 저장한다. 이 일체화TLB(41)은 데이타페치를 위해 CPU(3)이 데이타어드레스버스(32)로 출력하는 가상어드레스의 가상페이지번호에 따른 물리페이지번호를 어드레스변환정보에서 연상검색해서 그 가상어드레스를 물리어드레스로 변환한다.
상기 명령용 명령TLB(40)은 명령전용의 어드레스변환정보를 최대 4엔트리 저장한다. 특히 명령TLB(40)이 보유하는 엔트리는 일체화TLB(41)이 보유하는 명령어드레스의 어드레스변환정보의 일부로 된다. 즉, 연상검색에 의해 명령TLB(40)에 목적으로 하는 어드레스변환정보가 없는 것을 알 수 있으면 그의 어드레스변환정보는 일체화TLB(41)에서 명령TLB(40)으로 공급된다. 이 명령TLB(40)은 명령페치를 위해 CPU(3)이 명령어드레스버스(30)으로 출력하는 가상어드레스의 가상페이지번호에 따른 물리페이지번호를 어드레스변환정보에서 연상검색한다. 검색의 결과, 목적으로 하는 어드레스변환정보가 있는 경우(TLB히트), 그 어드레스변환정보를 사용해서 상기 가상어드레스를 물리어드레스로 변환한다. 상기 검색의 결과, 목적으로 하는 어드레스변환정보가 없는 경우(TLB미스), 상기 일체화TLB(41)에서 목적으로 하는 어드레스변환정보를 얻기 위한 동작을 캐시TLB콘트롤러(44)가 제어한다.
상기 데이타캐시메모리(43)은 데이타페치시에 일체화TLB(41)에 의해 변환된 물리어드레스를 수취하고, 이것에 따라서 캐시엔트리의 연상검색을 실행한다. 검색결과가 리드히트이면 히트에 관한 캐시라인에서 그 물리어드레스에 따른 데이타가 데이타버스(33) 또는 (35)로 출력된다. 검색결과가 리드미스이면 미스에 관한 데이타를 포함하는 1캐시라인분의 데이타가 버스콘트롤러(5)를 거쳐서 도시를 생략한 외부메모리에서 리드되고 캐시 채움(fill)이 실행된다. 이것에 의해서, 캐시미스에 관한 데이타가 상기 버스(33) 또는 (35)에 리드된다. 검색결과가 라이트히트한 경우 캐시동작모드가 카피백모드라면 히트한 엔트리에 데이타를 라이트하고, 상기 엔트리의 더티비트를 세트한다. 세트상태의 더티비트에 의해 외부메모리의 데이타와의 부정합상태를 알 수 있고, 상기 캐시 채움동작에 의해 상기 더티의 캐시엔트리가 캐시메모리에서 내보내질 때 외부메모리로의 라이트백이 실행된다. 라이트스루모드에서는 히트한 엔트리에 데이타를 라이트함과 동시에 외부메모리로의 데이타의 라이트도 아울러 실행된다. 검색결과가 라이트미스인 경우 카피백모드이면 캐시 채움을 실행함과 동시에 더티비트를 세트해서 태그어드레스를 갱신하고, 채움을 실행한 캐시라인에 데이타를 라이트한다. 라이트스루모드인 경우에는 외부메모리에 대해서만 라이트를 실행한다.
상기 명령캐시메모리(42)는 명령페치시에 명령TLB(40)에 의해 변환된 물리어드레스를 수취하고, 이것에 따라서 캐시엔트리의 연상검색을 실행한다. 검색결과가 리드히트이면 히트에 관한 캐시라인에서 그 물리어드레스에 따른 명령이 명령데이타버스(31)로 출력된다. 검색결과가 리드미스이면 미스에 관한 명령을 포함하는 1캐시라이분의 데이타가 버스콘트롤러(5)를 거쳐서 도시를 생략한 외부메모리에서 리드되고 캐시필이 실행된다. 이것에 의해서, 미스에 관한 명령이 명령데이타버스(31)을 거쳐서 CPU(3)에 부가된다.
상기 명령TLB(40), 일체화TLB(41) 및 캐시TLB콘트롤러(44)는 메모리관리유닛을 구성한다. 이 메모리관리유닛은 특권모드 및 사용자모드 각각에 있어서, 가상어드레스공간으로의 액세스권을 설정해서 기억보호를 실행할 수 있다. 예를 들면, 어드레스변환정보는 가상어드레스 페이지번호마다 보호키데이타를 갖는다. 보호키데이타는 페이지의 액세스권을 코드로 나타낸 2비트의 데이타로서, 특권모드에서만 리드가능, 특권모드에서 리드 및 라이트가능, 특권모드 및 사용자모드의 쌍방에서 리드만 가능, 그리고 특권모드 및 사용자모드의 쌍방에서 리드 및 라이트가능중 어느 하나의 액세스권이 설정가능하게 된다. 실제의 액세스형태가 상기 보호키데이타에 의해 설정된 액세스권에 위반되는 경우에는 TLB보호위반예외가 발생된다. TLB보호위반예외가 발생된 경우, 예를 들면 그 보호위반을 예외처리로 해 해결한 후 예외처리로부터의 복귀명령을 실행해서 중단된 통상처리명령을 재실행하게 된다.
상기 메모리관리유닛에 의한 기억보호는 어드레스변환시에 작용한다. 상기 DMAC(8)에 의한 데이타전송원 및 데이타전송지 어드레스는 CPU(3)이 데이타로서 설정되기 때문에 상기 어드레스변환시의 기억보호는 작용하지 않는다. 이와 같은 사정을 고려해서 상기 DMAC(8)은 그 독자적으로 기억보호를 실현하도록 되어 있다.
《DMAC》
도 2에는 상기 DMAC(8)의 전체적인 구성이 도시되어 있다. 도 2에 있어서, 상기 주변데이타버스(56) 및 주변어드레스버스(57)을 주변버스로 총칭하고, 어드레스버스(50) 및 데이타버스(51)을 내부버스로 총칭하고, 외부데이타버스(60) 및 외부어드레스버스(61)을 외부버스로 총칭한다. 또, (70)∼(74)로 나타낸 회로를 내장주변모듈(내장주변회로)로 총칭한다.
상기 외부버스(60), (61)에는 외부주변회로로서 특히 제한되지 않지만, 프로그램이나 정수데이타 등이 저장되는 외부ROM(Read Only Memory)(62), 메인메모리 등으로서 이용되는 외부RAM(Random Access Memory)(63), 메모리맵드I/O(Input/Output : 입력/출력)을 구성하는 외부입출력회로(64), 및 FIFO(First In First Out : 선입선출)버퍼 등과 같이 외부에서 어드레스지정할 수 없는 기억영역을 갖는 외부입출력회로(승인I/O)(65)가 대표적으로 결합되어 있다.
DMAC(8)은 n개(예를 들면 n = 0, 1, 2, 3의 4개)의 데이타전송채널(데이타전송채널0∼데이타전송채널3)을 갖고, 각 데이타전송채널마다 전송원어드레스가 설정되는 소오스어드레스레지스터SARn을 포함하는 소오스어드레스레지스터부(90), 각 데이타전송채널마다 전송지어드레스가 설정되는 수신지어드레스레지스터DARn을 포함하는 수신지어드레스레지스터부(91), 각 데이타전송채널마다 전송회수를 계수하기 위한 트랜스퍼카운트레지스터TCRn을 포함하는 트랜스퍼카운트레지스터부(92) 및 각 데이타전송채널마다의 데이타전송제어상태 등이 설정되는 채널제어레지스터CHCRn을 갖는다. 데이타전송채널이라는 것은 기억장치간의 데이타전송이나 기억장치와 주변회로 사이의 데이타전송 또는 주변회로간의 데이타전송을 취급하는 기능단위를 의미한다. 또, 데이타전송채널마다 어드레스에러검출부를 구성하기 위한 소오스어드레스비교부SACn, 수신지어드레스비교부DACn을 갖는다. 또, 각 데이타전송채널에 공통의 연산레지스터DMAOR이 마련되어 있다.
상기 각 레지스터SARn, DARn, TCRn, CHCRn, DMAOR은 버스(80)에 공통접속되고, 상기 버스(80)은 버스인터페이스회로(81)에 접속되어 있다. 상기 버스인터페이스회로(81)은 상기 데이터버스(54)를 거쳐서 상기 내부버스(51)에 접속되고, 상기 어드레스버스(55)를 거쳐서 버스스테이트콘트롤러(5)에 직접 접속되어 있다. 상기 데이타버스(54)는 상기 레지스터SARn, DARn, TCRn, CHCRn, DMAOR의 초기설정이나 설정내용을 확인하기 위한 리드 라이트동작에 이용된다. 그 리드 라이트동작은 CPU(3)이 상기 어드레스변환 캐시유닛(4)를 거쳐 실행한다. 상기 레지스터의 선택신호는 내부버스(51) 및 데이타버스(54)를 거쳐 공급된다. 상기 어드레스버스(55)는 데이타전송동작에 있어서 DMAC(8)이 액세스어드레스신호를 버스스테이트콘트롤러(5)를 거쳐서 내장주변회로나 외부주변회로에 공급하는 데에 사용된다.
DMAC(8)은 상기 데이타전송채널을 사용한 데이타전송제어를 위한 제어회로로서, 회수제어회로(82), 레지스터제어회로(83), 기동제어회로(84) 및 요구우선제어회로(85)를 갖는다. 상기 요구우선제어회로(85)는 마이크로컴퓨터(1)의 내외에서 데이타전송요구가 있었을 때 채널제어레지스터CHCRn 등을 참조해서 그 전송요구원을 판정함과 동시에 그 요구에 응답해서 기동할 데이타전송채널을 판정한다. 또, 요구우선제어회로(85)는 데이타전송요구가 경합하는 경우에는 미리 결정되어 있는 우선순위에 따라서 기동할 하나의 데이타전송채널을 판정한다. 요구우선제어회로(85)는 데이타전송요구에 응답할 하나의 데이타전송채널을 결정하면, 그의 정보를 기동제어회로(84)에 부가한다. 기동제어회로(84)는 우선 버스스테이트콘트롤러(5)에 대해서 버스권요구신호BREQ를 어서트해서 버스권을 요구한다. 버스스테이트콘트롤러(5)가 버스권승인신호BACK를 어스트하면 이것에 의해서 DMAC(8)은 버스권을 획득한다. 그리고 기동제어회로(84)는 레지스터제어회로(83)에 상기 소오스레지스터SARn이나 수신지레지스터DARn의 출력동작 등을 제어시키고, 또한 버스인터페이스회로(81)에 어드레스출력동작 등을 제어시킨다. 이것에 의해서 DMAC(8)은 데이타전송요구에 응답하는 데이타전송제어를 버스스테이트콘트롤러(5)를 거쳐 실행한다.
도 3에는 상기 데이타전송채널의 상세가 도시되어 있다. 라이트버퍼CWB, 리드버퍼CRB 및 어드레스출력버퍼AVB는 상기 버스인터페이스회로(81)에 포함되어 있다.
상기 트랜스퍼카운트레지스터부(92)는 트랜스퍼카운트레지스터TCR0∼TCR3(TCRn)에 대한 입력셀렉터(920)과 출력셀렉터(921)을 갖고 있음과 동시에 감폭계(decrementer)(922)를 갖는다. 상기 트랜스퍼카운트레지스터TCR0∼TCR3(TCRn)에는 대응하는 데이타전송채널의 전송회수가 CPU(3)에서 입력셀렉터(920)을 거쳐서 초기설정된다. 동작이 선택된 데이타전송채널의 전송동작마다 상기 데이타전송채널에 대응되는 트랜스퍼카운트레지스터TCRn의 값이 상기 감폭계(922)에 의해서 하나씩 감소된다.
상기 소오스어드레스레지스터부(90)은 입력셀렉터(900) 및 출력셀렉터(901)을 갖고, 또 상기 수신지어드레스레지스터부(91)은 입력셀렉터(910) 및 출력셀렉터(911)을 갖는다. 그리고, 소오스어드레스레지스터부(90)과 수신지어드레스레지스터부(91)은 셀렉터(913)과 산술연산기(914)를 공유한다. 전송회수가 여러회인 경우, 소오스어드레스레지스터SAR0∼SAR3(SARn) 및 수신지어드레스레지스터DAR0∼DAR3(DARn)에 설정된 어드레스는 선두어드레스로 되고, 그 어드레스는 데이타전송마다 산술논리연산기(914)에 의해 갱신되어 간다.
채널제어레지스터CHCR0∼CHCR3(CHCRn)은 입력셀렉터(930)과 출력셀렉터(931)을 갖는다. 도 3에 있어서 (94)로 나타내는 것은 상기 리드버퍼CRB의 입력셀렉터이다. 도 3에 있어서 (95)로 나타내는 것은 어드레스출력버퍼AVB의 입력셀렉터이다.
상기 셀렉터(900), (901), (910), (911), (920), (921), (930), (931), (94), (95)는 데이타전송동작에 따라서 상기 레지스터제어회로(83)에 의해 그의 선택동작이 제어된다.
도 4에는 상기 채널제어레지스터CHCRn(CHCR0∼CHCR3)의 포맷이 도시되어 있다. 채널제어레지스터CHCRn은 DE, RS0∼RS3, TE, DM0∼DM1, SM0∼SM1, TM, TS0∼TS2, IE, DS, RL, AM 및 AL의 각 정보를 포함한다. 그들중 DS, RL, AM 및 AL의 각 비트는 데이타전송채널0 및 데이타전송채널1에서만 유효하게 된다. 그들 비트는 외부요구모드에서만 의미가 있는 제어정보로서, 외부요구모드에서 이용할 수 있는 것은 데이타전송채널0 및 데이타전송채널1뿐이다.
채널인에이블비트DE는 도 5에 예시되는 바와 같이, 대응하는 데이타전송채널의 동작을 가능하게 할지의 여부를 결정하는 제어비트로서, DE = 0은 대응채널의 동작금지, DE = 1은 대응채널의 동작허가를 지시한다.
자원선택정보RS0∼RS3은 데이타전송채널마다 상기 데이타전송채널에 할당되는 데이타전송요구원과 그 요구원으로부터의 데이타전송요구에 응답하는 데이타전송원 및 데이타전송지의 조합상태를 여러비트에 의해 지정하는 정보이다. 상기 자원선택정보에 의한 지정상태는 도 6에 예시된 바와 같다. 데이타전송모드가 싱글어드레스모드인지 듀얼어드레스모드인지는 지정된 상태에 따라서 일의적으로 결정된다. 싱글어드레스모드라는 것은 데이타전송원 또는 데이타전송지중의 어느 한쪽에 대해서만 DMAC(8)이 어드레싱동작을 실행하는 모드로서, 이 때에는 상기 소오스어드레스레지스터SARn과 수신지어드레스레지스터DARn중의 어느 한쪽만이 이용된다. 이와 같은 동작모드는 예를 들면 FIFO버퍼를 구비한 외부주변회로로부터의 데이타전송요구에 응답해서 상기 FIFO버퍼와 외부메모리 사이에서 데이타전송을 실행하는 경우와 같은 동작으로 된다. FIFO버퍼에 대해 DMAC(8)은 어드레싱동작을 실행하는 것을 필요로 하지 않기 때문이다. 듀얼어드레스모드는 전송원 및 전송지의 쌍방에 대해서 DMAC(8)이 어드레싱을 실행하는 동작모드이다.
도 6에 도시된 전송상태는 DMAC(8)이 서포트하는 데이타전송모드에 대응되고 있다. 즉, DMAC(8)에 대한 데이타전송요구는 외부요구, 오토요구 및 내장주변회로로부터의 요구로 크게 구별된다. 외부요구는 마이크로컴퓨터(1)의 외부에서 DMAC(8)에 대한 데이타전송요구로서, 도 2에 예시된 바와 같이 전송요구신호DREQ0#, DREQ1#에 의해 부가된다. 특히 제한되지 않지만, 외부요구는 데이타전송채널0, 1만으로 유효하게 된다. 전송요구신호DREQ0#, DREQ1#에 의한 전송요구가 접수되면, 전송요구원에 전송승인신호DRAK0, DRAK1이 반환된다. 전송요구신호DREQ0#, DRWQ1#에 응답한 데이타전송동작의 완료는 전송완료신호DACK0, DACK1에 의해서 전송요구원으로 반환된다.
마이크로컴퓨터(1)의 내장주변회로로부터의 데이타전송요구는 특히 제한되지 않지만, 타이머(TMU)(74)에서 출력되는 입력포획(input capture) 인터럽트신호TIC, 직렬통신인터페이스 콘트롤러SCI1로부터의 송신데이타엠프티(empty) 인터럽트전송요구신호SCI1E, 직렬통신인터페이스 콘트롤러SCI1로부터의 수신데이타풀(full) 인터럽트전송요구신호SCI1F, 직렬통신인터페이스 콘트롤러SCI2로부터의 송신데이타엠프티 인터럽트전송요구신호SCI2E 및 직렬통신인터페이스 콘트롤러SCI2로부터의 수신데이타풀 인터럽트전송요구신호SCI2F에 의해 부가된다.
오토요구는 채널제어레지스터CHCRn에 포함되는 채널인에이블비트DE의 세트상태와 연동한 전송요구이다. 즉, 자원선택정보에 오토요구가 지정된 데이타전송채널에서는 데이타전송인에이블비트DE가 1로 세트되는 것에 의해서 데이타전송이 요구되게 된다.
상기 요구우선제어회로(85)는 상기 외부요구, 오토요구 및 내장주변회로로부터의 요구라고 하는 데이타전송요구가 있었을 때, 그 요구원에 응답할 데이타전송채널을 상기 각 채널제어레지스터CHCRn의 자원선택정보RS0∼RS3의 설정내용에서 판정한다. 예를 들면, 입력포획 인터럽트신호TIC가 어스트되었을 때 자원선택정보RS3, RS2, RS1, RS0 = 1, 1, 1, 0으로 설정되어 있는 데이타전송채널이 있던 경우에는 상기 데이타전송채널이 그 입력포착 인터럽트신호TIC에 의한 데이타전송요구에 응답하는 데이타전송채널이라고 판정된다. 또, 원하는 데이타전송채널의 채널인에이블비트DE가 세트되었을 때, 상기 데이타전송채널의 자원선택정보RS3, RS2, RS1, RS0 = 0, 1, 0, 0이 설정되어 있으면 상기 데이타전송채널이 오토요구에 응답하는 데이타전송채널이라고 판정된다.
트랜스퍼엔드비트TE는 도 7에 도시되는 바와 같이, 데이타전송채널의 상기 트랜스퍼카운트레지스터TCRn에 설정된 전송회수분의 전송이 종료되었을 때 1로 세트되는 비트이다. 즉, 도 3의 감폭계(922)에 의해서 대응하는 데이타전송채널의 상기 트랜스퍼카운트레지스터TCRn의 값이 0에 도달한 것이 도 2의 회수제어회로(82)에 의해 검출되었을 때, 상기 회수제어회로(82)는 대응하는 데이타전송채널의 트랜스퍼엔드비트TE를 1로 세트한다. 도 2에 도시된 기동제어회로(84)가 데이타전송채널의 트랜스퍼엔드비트TE가 1로 세트된 것을 검출하면, 버스요구신호BREQ를 무효로 한다. 트랜스퍼엔드비트TE가 1로 세트된 데이타전송채널이 외부요구에 응답해서 데이타전송동작을 실행하고 있었을 때, 상기 버스인터페이스회로(81)은 DACK0 또는 DACK1을 어서트해서 상기 외부요구를 낸 전송요구원으로 데이타전송의 완료를 통지한다.
수신지어드레스모드정보MD1, MD2는 도 8에 도시되는 바와 같이, 전송지어드레스의 고정, 증가 또는 감소를 지정한다. 소오스어드레스모드정보SM0, SM1은 도 9에 도시되는 바와 같이, 전송원어드레스의 고정, 증가 또는 감소를 지정한다. 전송사이즈정보는 도 10에 도시되는 바와 같이 전송데이타의 사이즈를 지정한다. 인터럽트인에이블비트IE는 도 11에 도시되는 바와 같이, 트랜스퍼카운트레지스터TCRn에 의해서 지정된 회수의 전송동작이 종료했을 때 CPU(3)에 인터럽트를 요구할 것인지의 여부를 지정한다.
전송모드비트TM은 도 12에 도시된 바와 같이, 전송시의 버스모드를 사이클스틸모드로 할 것인지 버스모드로 할 것인지를 지정한다. 버스모드가 지정되어 있을 때, DMAC(8)은 트랜스퍼카운트레지스터TCRn에 의해서 지정된 회수의 전송동작이 종료할 때까지 버스권을 포기하기 않는다. 사이클스틸모드에서는 전송동작을 1회 실행할 때마다 일정기간 버스권을 CPU(3)에 개방한다.
도 13에는 상기 연산레지스터DMAOR의 포맷이 도시되어 있다. 이 레지스터DMAOR은 PR0∼PR1, AE, NMIF, DME의 각 정보를 포함하고 있다.
상기 우선모드정보PR0, PR1은 도 14에 도시되는 바와 같이, 동시에 여러개의 데이타전송채널에 전송요구가 있었을 때, 데이타전송을 실행하는 데이타전송채널의 우선순위를 결정한다. 도 14에 있어서 CH0∼CH3은 데이타전송채널0∼데이타전송채널3을 의미한다. 도 2에 도시된 요구우선제어회로(85)는 데이타전송요구에 응답할 데이타전송채널을 판정하는 데에 있어서 여러개의 데이타전송채널에 대한 데이타전송요구가 경합할 때, 상기 우선모드정보PR0, PR1에 따라서 우선순위가 높은 데이타전송채널에 대한 데이타전송요구를 우선시킨다. 예를 들면, 데이타전송채널CH0과 CH1의 쌍방의 자원선택정보RS0∼RS3에 입력포획인터럽트를 전송요구원으로 하는 지정이 되어 있는 경우, 입력포획 인터럽트신호TIC가 어서트되었을 때 상기 우선모드정보PR0, PR1에 의해서 우선순위가 높게 설정되어 있는 어느 한쪽의 데이타전송채널에 의한 데이타전송이 실행된다.
어드레스에러플래그AE는 도 15에 도시되는 바와 같이, 어드레스에러가 발생한 것을 나타내는 플래그이다. 어드레스에러가 없는 상태는 데이타전송허가상태로 되고, 어드레스에러가 있는 상태는 데이타전송금지상태로 된다. 데이타전송중이더라도 상기 플래그AE가 세트되면 어떠한 데이타전송채널이 동작되고 있어도 그 데이타전송은 중단된다. DMAC(8)에 있어서의 어드레스에러라는 것은 첫번째는 어드레스경계(boundary)에러, 두번째는 기억보호에러이다. 경계에러는 전송사이즈가 바이트 이외의 경우에 발생하는 경우가 있다. 어드레스에러의 상태는 소오스어드레스레지스터SARn, 수신지어드레스레지스터DARn에 설정된 어드레스가 워드어드레스인 경우에는 최하위비트가 논리값1(기수어드레스)일 때, 롱워드어드레스인 경우에는 하위 2비트가 논리값1, 10, 11일 때, 쿼드(quad)워드어드레스인 경우에는 하위 3비트가 논리값1, 10, 11, 100, 101, 111일 때, 또 32바이트블럭전송인 경우에는 하위 5비트가 논리값1, 10, 11, 100 … 11100, 11101, 11110, 11111일 때이다. 기억보호에러는 상기 소오스어드레스레지스터SARn에 설정된 데이타전송원어드레스와 수신지어드레스레지스터DARn에 설정된 데이타전송지어드레스중의 적어도 한쪽이 상기 자원선택정보RS0∼RS3에 의해서 지정되는 데이타전송원과 데이타전송지의 조합상태에서 이탈하고 있을 때 어드레스에러로 한다. 이 기억보호에러에 대해서는 후에 상세히 기술한다.
NMI플래그NMIF는 도 16에 도시되는 바와 같이, CPU(3)에 대한 마스크불가능한 인터럽트신호(NMI)가 입력된 것을 나타내는 플래그이다. NMI는 우선도가 높은 인터럽트신호로서, 이것이 CPU를 향해서 어서트된 경우 CPU(3)에 의한 인터럽트처리를 최우선시키기 위해 DMAC(8)은 NMI플래그NMIF가 세트되었을 때 데이타전송동작을 중단한다.
마스터인에이블비트DME는 도 17에 도시되는 바와 같이, DMAC(8) 전체의 기동허가비트이다. 마스터인에이블비트DME 및 데이타전송채널에 대응되는 채널제어레지스터CHCRn의 채널인에이블비트DE를 세트하는 것에 의해 상기 데이타전송채널이 동작가능하게 된다. 전송도중에 마스터인에이블비트가 클리어되면 데이타전송은 중단된다. 마스터인에이블비트DME가 세트상태이더라도 채널제어레지스터CHCRn의 트랜스퍼엔드플래그TE가 세트상태 또는 인에이블비트DE가 클리어상태인 경우, 또는 연산레지스터DMAOR의 NMI플래그NMIF 또는 어드레스에러플래그AE가 세트상태인 경우에는 전송허가상태로 이동할 수는 없다.
《DMAC에 의한 기억보호》
도 18에는 기억보호를 위한 어드레스에러검출부와 레지스터부의 관계를 상세히 도시하고 있다.
어드레스에러검출부(96)은 상기 소오스어드레스비교부SACn, 수신지어드레스비교부DACn 및 논리합게이트(960)으로 구성된다. 상기 소오스어드레스비교부SACn 및 수신지어드레스비교부DACn은 데이타전송채널마다 쌍으로 마련되어 있다. 소오스어드레스비교부SACn은 소오스어드레스레지스터SARn에 저장된 29비트의 물리어드레스의 최상위부터 3비트SAR[28], SAR[27], SAR[26]과 채널제어레지스터CHCRn의 자원선택정보RS0∼RS3을 입력한다. 수신지어드레스비교부DACn은 수신지어드레스레지스터DARn에 저장된 29비트의 물리어드레스의 최상위부터 3비트DAR[28], DAR[27], DAR[26]과 채널제어레지스터CHCRn의 자원선택정보RS0∼RS3을 입력한다. 논리합게이트(960)에는 각각의 데이타전송채널에 있어서의 소오스어드레스비교부SACn의 출력과 수신지어드레스비교부DACn의 출력이 입력된다. 논리합게이트(960)의 출력신호(961)은 상기 연산레지스터DMAOR의 어드레스에러플래그AE에 반영된다. 어드레스에러플래그AE가 세트되면 상기 인터럽트제어회로(71)에 어드레스에러를 통지하는 인터럽트요구가 발행된다.
마이크로컴퓨터(1)이 29비트의 물리어드레스에 의해 관리하는 물리어드레스공간은 특히 제한되지 않지만, 도 19에 예시된 바와 같이 영역0∼영역7로 8분할된다. 영역0∼영역6은 마이크로컴퓨터(1)의 외부어드레스공간(외부공간)에 할당되고, 영역7은 마이크로컴퓨터(1)의 내부어드레스공간(내부공간)에 할당되어 있다. 특히 영역7의 0x1F00 0000∼0x1FFF FFFF(0x는 16진수인 것을 의미한다)는 마이크로컴퓨터의 내장주변모듈(70)∼(74)에 할당된 제어레지스터공간(내장주변공간)으로 된다. 따라서, 상기 소오스어드레스비교부SACn, 수신지어드레스비교부DACn은 소오스어드레스의 최상위측 3비트SAR[28]∼SAR[26], 수신지어드레스의 최상위측 3비트DAR[28]∼DAR[26]을 참조하는 것에 의해, 그의 소오스어드레스, 수신지어드레스가 어떤 영역의 어드레스인지를 판정할 수 있다.
상기 소오스어드레스비교부SACn은 도 20에 예시된 소오스어드레스의 어드레스영역 판정표를 갖고, 수신지어드레스비교부DACn은 도 21에 예시된 수신지어드레스의 어드레스에러 판정표를 갖는다.
소오스어드레스의 어드레스에러 판정표는 자원선택정보RS0∼RS3에 의해서 규정되는 전송원회로가 배치되는 어드레스영역과 상기 소오스어드레스의 최상위측 3비트SAR[28]∼SAR[26]에 의해서 규정되는 어드레스영역이 불일치하게 되는 상태를 정의하고 있다. 도 20에 있어서, SAERR이 논리값1로 되어 있을 때의 상기 자원선택정보RS0∼RS3과 상기 소오스어드레스의 최상위측 3비트SAR[28]∼SAR[26]의 조합이 어드레스에러를 발생시키는 상태이다. 예를 들면, 도 20의 최초의 어드레스에러의 상태에 있어서, RS3, RS2, RS1, RS0 = 0, 1, 0, 0은 도 6에 도시된 바와 같이 오토요구에 의한 외부어드레스공간끼리의 듀얼어드레스모드에 의한 데이타전송이다. 즉, 정규의 소오스어드레스는 영역0∼영역7로 된다. 이 때, 소오스어드레스의 최상위측 3비트SAR[28]∼SAR[26]이 전체비트 논리값1이면 영역7을 의미하고 기억보호위반의 어드레스에러로 된다.
마찬가지로, 수신지어드레스의 어드레스에러 판정표는 자원선택정보RS0∼RS3에 의해서 규정되는 전송지회로가 배치되는 어드레스영역과 상기 수신지어드레스의 최상위측 3비트DAR[28]∼DAR[26]에 의해서 규정되는 어드레스영역이 불일치하게 되는 상태를 정의하고 있다. 도 21에 있어서, DAERR이 논리값1로 되어 있을 때의 상기 자원선택정보RS0∼RS3과 상기 수신지어드레스의 최상위측 3비트DAR[28]∼DAR[26]의 조합이 어드레스에러를 발생시키는 상태이다.
상기 DAERR은 수신지어드레스비교부DACn의 판정결과신호, 상기 SAERR은 소오스어드레스비교부SACn의 판정결과신호로서 파악할 수 있다.
도 20 및 도 21에 예시된 기억보호에러의 상태를 정리하면 이하의 의미로 된다. 즉, 기억보호위반으로서의 어드레스에러의 상태는 데이타전송요구에 따른 데이타전송원이 내장주변회로(70)∼(74)일 때 어드레스레지스터SARn에 설정되어 있는 전송원어드레스가 외부주변회로(62)∼(65)를 지정하고 있는 상태, 데이타전송요구에 따른 데이타전송원이 외부주변회로(62)∼(65)일 때 어드레스레지스터SARn에 설정되어 있는 전송원어드레스가 내부주변회로(70)∼(74)를 지정하고 있는 상태, 데이타전송요구에 따른 데이타전송지가 내장주변회로(70)∼(74)일 때 어드레스레지스터DARn에 설정되어 있는 전송지어드레스가 외부주변회로(62)∼(65)를 지정하고 있는 상태 및 데이타전송요구에 따른 데이타전송지가 외부주변회로(62)∼(65)일 때 어드레스레지스터DARn에 설정되어 있는 전송지어드레스가 내부주변회로(70)∼(74)를 지정하고 있는 상태이다.
도 22에는 DMAC(8)의 동작흐름도가 도시되어 있다. 우선, CPU(3)에 의해서 DMAC(8)의 초기설정이 실행된다(S1). 즉, 상기 소오스어드레스레지스터SARn, 수신지어드레스레지스터DARn, 트랜스퍼카운트레지스터DMATCRn, 채널제어레지스터CHCRn 및 연산레지스터DMAOR에 목적의 전송조건이 설정된다. 이것에 의해서, 데이타전송의 상태, 소오스어드레스 및 수신지어드레스 등이 결정된다. 초기설정후, 마스터인에이블비트DME 및 각 채널제어레지스터CHCRn의 채널인에이블비트DE가 기동제어회로(84) 및 요구우선제어회로(85)에 의해 참조되고, 전송허가상태인지의 여부(DMA = 1, 또한 적어도 하나의 데이타전송채널의 DE = 1)이 판정된다(S2).
전송허가상태인 경우에는 불법(illegal)어드레스의 체크가 실행된다(S3). 불법어드레스의 체크는 상기 기억보호에러와 경계에러의 체크이다.
기억보호에러의 체크에서는 전송허가상태의 데이타전송채널에 관해 채널제어레지스터CHCRn의 자원선택정보RS0∼RS3과 소오스어드레스레지스터SARn의 최상위측 3비트의 조합이 액세스금지상태(도 20의 에러상태)와 일치하는지가 소오스어드레스비교부SACn에 의해 판정된다. 마찬가지로, 전송허가상태의 데이타전송채널에 관해 채널제어레지스터CHCRn의 자원선택정보RS0∼RS3과 수신지어드레스레지스터DARn의 최상위측 3비트의 조합이 액세스금지상태(도 21의 에러상태)와 일치하는지가 수신지어드레스비교부DACn에 의해 판정된다.
경계에러의 체크에서는 전송허가상태의 데이타전송채널에 관해 채널제어레지스터CHCRn의 전송사이즈정보TS0∼TS1과 소오스어드레스레지스터SARn, 수신지어드레스레지스터DARn을 비교하고, 바이트사이즈 이외의 전송사이즈인 경우에 그들 어드레스가 기수어드레스인지를 판정하고, 기수어드레스인 경우에는 어드레스에러로 된다.
불법어드레스체크에 의해서 어드레스에러가 있는 경우에는 어드레스에러플래그AE가 논리값1로 세트된다.
그리고 상기 NMI플래그, 어드레스에러플래그AE 및 트랜스퍼엔드플래그TE 모두 논리값0으로 클리어되어 있는지가 판정된다(S4). 클리어되어 있지 않은 경우에는 그 장해가 제거될 때까지 데이타전송을 개시할 수는 없다.
상기 NMI플래그, 어드레스에러플래그AE 및 트랜스퍼엔드플래그TE 모두 논리값0으로 클리어되어 있는 경우에는 전송요구의 발생을 대기한다(S5).
전송요구가 있으면 그 전송요구에 응답하는 데이타전송채널을 판정하고, 여러개의 전송요구가 경합하는 경우에는 우선제어를 실행하고, 하나의 데이타전송채널을 사용해서 1전송단위의 데이타전송이 실행된다(S6). 1전송단위의 데이타사이즈는 전송사이즈정보TS0, TS1에 의해서 결정된다. 자원선택정보에 의해서 오토요구모드가 지정되어 있는 경우에는 DE 및 DME가 논리값1로 세트되는 것에 의해 자동적으로 데이타전송이 개시된다. 1회의 데이타전송이 실행될 때마다 데이타전송에 관한 데이타전송채널의 트랜스퍼카운트레지스터TCRn의 값이 1개씩 감소되고, 소오스어드레스레지스터SARn, 수신지어드레스레지스터DARn의 값이 동작모드에 따라 갱신된다.
트랜스퍼카운트레지스터TCRn의 값은 회수제어회로(82)에 의해 참조되어 있고, 그 값이 0으로 될 때까지 전송이 반복된다(S7). 트랜스퍼카운트레지스터TCRn의 값이 0으로 되었을 때, 채널제어레지스터CHCRn의 IE비트에 1이 세트되어 있으면 CPU(3)에 인터럽트를 발생시킨다(S10).
데이타전송도중에 플래그NMIF 또는 AE가 1로 세트되고, 혹은 DE 또는 DME가 0으로 클리어되었을 때에는 전송이 중단된다(S8, S11). 중단된 데이타전송은 중단사유가 해소된 후에 재개된다.
상기 트랜스퍼카운트레지스터TCRn의 값이 0으로 될 때까지 반복되는 데이타전송동작은 버스트모드, 전송요구모드, 외부요구에 대한 검출방법에 의해서 처리가 상이된다(S9). 즉, 사이클스틸모드가 지정되어 있는 경우 또는 버스트모드에서 외부요구(DREQ0#, DREQ1#)을 레벨검출하는 경우에는 P1로 나타내는 바와 같이, 새로운 전송요구의 발생을 대기해서 다음의 데이타전송으로 이행한다. 버스트모드에서 오토요구가 지정되어 있는 경우 또는 버스트모드에서 외부요구(DREQ0#, DREQ1#)를 에지검출하는 경우에는 P2로 나타내는 바와 같이 자동적으로 다음의 전송동작으로 천이된다.
도 23에는 상기 메모리보호에 의한 DMA전송억지인 경우의 타이밍도가 도시되어 있다. 도 23에 있어서, CKIO는 DMAC(8)의 동작기준클럭신호이다. 도 23에 있어서, 데이타D1∼D3 및 제어신호S1, S2는 CPU(3)에서 어드레스변환 캐시유닛(4)를 거쳐서 DMAC(8)의 버스인터페이스회로(81)에 공급되는 정보이다. D1은 DMAC(8)에 내장된 레지스터SARn, DARn, TCRn, CHCRn, DMAOR을 임의로 선택하기 위한 정보이다. S1은 DMAC(8)에 대한 액세스를 선택하는 신호이다. S2는 리드 라이트신호이다. D2는 DMAC(8)을 라이트액세스할 때의 데이타사이즈정보이다. D3은 실제로 레지스터에 라이트하는 정보이다. 그들 신호는 클럭신호CKIO의 2사이클의 기간 유효로 된다. CWB_L은 상기 라이트버퍼CWB에 대한 래치신호로서, 이것에 의해서 라이트버퍼CWB는 데이타D3을 래치한다. CH_S는 채널선택신호이고, REG_L은 선택된 채널의 레지스터래치신호이다. 채널선택신호CH_S 및 레지스터래치신호REG_L은 상기 데이타D1에 따라서 버스인터페이스회로(81)에 의해 생성된다. 이것에 의해, 채널선택신호CH_S와 레지스터래치신호REG_L에 의해 선택된 레지스터에 데이타가 라이트된다.
예를 들면, 이미 채널제어레지스터CHCRn의 데이타가 설정되어 있을 때, 소오소어드레스레지스터SARn의 소오스어드레스가 라이트된 경우를 상정한다. 이 때, 그 채널제어레지스터CHCRn에 설정되어 있는 자원선택정보RS0∼RS3에 대해서 소오스어드레스레지스터SARn에 설정된 소오스어드레스가 액세스금지영역이라면 상기 어드레스에러신호(961)이 어서트되고, 이것에 의해서 연산레지스터DMAOR의 어드레스에러플래그AE에 1이 세트된다. 이 상태는 DMAC(8)내부의 에러신호ERR_S에 의해서 요구우선제어회로(85) 및 기동제어회로(84)에 통지되고, DMAC(8)의 데이타전송이 억지된다. 이 경우, 채널제어레지스터CHCRn의 채널인에이블비트DE와 연산레지스터DMAOR의 마스터인에이블비트DME가 양쪽 모두 1로 세트되었을 때, 비로소 어드레스에러플래그AE에 1에 세트된다. 또, 자원선택정보RS0∼RS3에 의해서 싱글어드레스모드가 설정되어 있을 때에는 전송에 불필요한 어드레스레지스터(SARn 또는 DARn)으로의 에러검출은 경계에러 및 액세스금지영역의 어드레스에러에 관해서는 실행되지 않는다(이 때의 어드레스레지스터는 단지 버퍼로서 사용할 수 있다).
도 24에는 어드레스에러가 검출되지 않을 때 전송요구의 발생을 대기해서 데이타전송을 실행할 때의 타이밍도가 도시되어 있다. 동일 도면에 도시되는 타이밍은 싱글어드레스모드와 버스트모드가 지정되어 있는 경우를 1예로 한다. 데이타전송상태는 외부버스간에서의 데이타전송이다. 이 상태에서의 데이타전송은 도 22의 P1을 거쳐서 소정회수분 데이타전송이 반복실행된다. 데이타전송요구원은 전송지회로이고, DMAC(8)은 전송동작마다 소오스어드레스를 출력한다. 또, DREQn#을 매회 검출한다. 이것에 따라서 DRAKn, DACKn도 매회 데이타전송원으로 반환된다.
도 25에는 어드레스에러가 검출되지 않을 때 전송요구의 발생을 대기해서 데이타전송을 실행할 때의 다른 타이밍도가 도시되어 있다. 동일 도면에 도시되는 타이밍은 듀얼어드레스모드와 버스트모드가 지정되어 있는 경우를 1예로 한다. 데이타전송상태는 외부버스간에서의 데이타전송이다. 이 상태에서의 데이타전송은 도 22의 P1을 거쳐서 소정 회수분 데이타전송이 반복실행된다. 듀얼어드레스모드이므로 소오스어드레스의 데이타를 리드하고, 리드한 데이타를 수신지어드레스에 라이트하는 데이타전송동작을 소정 회수 반복한다. 이 데이타전송동작에 있어서, 소오스어드레스에서 리드된 데이타는 외부버스를 거쳐서 버스콘트롤러(5)의 데이타버퍼(58)에 일시적으로 저장되고, 저장된 데이타가 외부버스를 거쳐서 수신지어드레스에 라이트된다.
도 26에는 어드레스에러가 검출되지 않을 때 전송요구의 발생을 대기해서 데이타전송을 실행할 때의 또 다른 타이밍도가 도시되어 있다. 동일 도면에 도시되는 타이밍은 듀얼어드레스모드와 사이클스틸모드가 지정되어 있는 경우를 1예로 한다. 데이타전송상태는 외부버스간에서의 데이타전송이다. 이 상태에서의 데이타전송은 도 22의 P1을 거쳐서 소정 회수분 데이타전송이 반복실행된다. 듀얼어드레스모드이므로 소오스어드레스의 데이타를 리드하고, 리드한 데이타를 수신지어드레스에 라이트하는 데이타전송동작을 소정 회수 반복한다. 이 데이타전송동작에 있어서 소오스어드레스에서 리드된 데이타는 주변버스를 거쳐서 버스콘트롤러(5)의 데이타버퍼(58)에 일시적으로 저장되고, 저장된 데이타가 외부버스를 거쳐서 수신지어드레스에 라이트된다. 또, 사이클스틸모드이므로 DMAC(8)에 의한 데이타전송의 1회마다 DMAC(8)은 소정 기간 버스권을 포기한다.
《DMAC의 기억보호에 의한 작용효과》
이상 설명한 DMAC(8)의 기억보호에 의한 작용효과는 다음과 같다.
상기 어드레스레지스터SARn, DARn 및 제어레지스터CHCRn에 의해 구성되는 하나의 데이타전송채널의 데이타전송용도(데이타전송원과 전송지의 조합)는 자원선택정보RS0∼RS3에 의해서 결정되어 있다. 그 데이타전송용도에 비추어 전송지어드레스 또는 전송원어드레스의 적어도 한쪽이 이탈하는 경우에는 어드레스에러플래그AE가 세트되고 데이타전송동작의 개시가 억지된다. 따라서, 하나의 데이타전송채널에 할당된 전송원의 회로와 전송지의 회로의 조합에 대해서 어드레스레지스터SARn, DARn에 설정할 전송원이나 전송지어드레스가 설정에러나 노이즈 더 나아가서는 시스템의 폭주 등에 기인해서 이탈한 경우에는 데이타전송동작은 억지된다. 또, 자원선택정보RS0∼RS3의 설정에러나 원하지 않는 갱신이 발생한 경우에 어드레스레지스터SARn, DARn에 설정할 전송원이나 전송지어드레스가 정상이더라도 마찬가지로 데이타전송동작은 억지된다.
이와 같이, 데이타전송가능한 전송원과 전송지의 조합의 상태는 자원선택정보RS0∼RS3의 값에 따라 미리 정의되어 있고, 상기 어드레스에러검출부(96)은 그 정의된 내용에 따른 어드레스에러의 판정논리를 갖고, 그 논리구성에 따라서 DMAC(8)에 의한 데이타전송제어불가능한 어드레스에러를 제어레지스터CHCRn의 자원선택정보RS0∼RS3과 어드레스레지스터SARn, DARn의 전송원어드레스, 전송지어드레스에 따라서 검출한다. 자원선택정보RS0∼RS3과 어드레스레지스터SARn, DARn의 쌍방의 설정정보가 정합해서 비로소 데이타전송이 개시되므로, DMAC(8)에 의한 데이타전송동작에 대한 기억보호에 높은 신뢰성을 얻을 수 있다. 또한, DMAC(8)에 의한 기억보호위반에 대해서 DMAC(8) 스스로가 데이타전송동작을 억지할 수 있어 불필요한 데이타전송동작을 생략할 수 있다.
상기 기억보호에 이용되는 자원선택정보RS0∼RS3은 데이타전송요구에 대해서 어떤 데이타전송채널을 사용할지를 판정하기 위한 정보이기도 하다. 따라서, 데이타전송채널의 기능할당과 데이타전송에 있어서의 기억보호의 쌍방에 대해 각각 제어정보를 설정하는 것을 필요로 하지 않는다.
상기 우선정보PR0, PR1에 따라서 우선순위가 높은 데이타전송채널에 대한 데이타전송요구를 우선시키므로, 여러개의 데이타전송채널을 배차적으로 동작시킬 때 그 우선순위를 가변할 수 있다.
상기 마이크로컴퓨터(1)은 메모리관리유닛(40, 41, 44)에 의한 어드레스변환시에 CPU(3)이 관리하는 어드레스공간에 대해 기억보호를 실현하지만, 그 기억보호는 액세스어드레스에 대해 작용한다. 이 때 DMAC(8)은 상술한 바와 같이, CPU(3)이 상기 어드레스레지스터SARn, DARn에 데이타로서 설정한 전송지어드레스 및 전송원어드레스에 자원선택정보RS0∼RS3의 전송상태에 위반하는 설정이 실행되었을 때, 그 전송지어드레스 및 전송원어드레스에 관한 데이타전송의 기동을 억지한다. 따라서, 메모리관리유닛(40, 41, 44)의 기억보호가 직접적으로 작용하지 않는 DMAC(8)에 의한 데이타전송동작에 대해서도 액세스금지영역의 데이타보호를 실현할 수 있고, 마이크로컴퓨터(1)을 적용한 도 2에 예시된 바와 같은 데이타처리시스템의 동작의 안전성을 높일 수 있다. 시스템동작의 안전성이 향상되기 때문에 물리어드레스공간에 대해 DMAC(8)을 안심하고 이용할 수 있고, 또 시스템의 구축도 용이하게 된다. 또, 상기 기억보호위반에 대해서 DMAC(8) 스스로가 데이타전송동작을 억지할 수 있어 불필요한 데이타전송동작을 생략할 수 있으므로, 데이타처리시스템 및 마이크로컴퓨터(1)에 의한 데이타처리효율의 향상에 기여할 수 있다.
이상 본 발명자에 의해 이루어진 발명을 실시예에 따라서 구체적으로 설명하였지만, 본 발명은 그것에 한정되는 것이 아니라 그 요지를 이탈하지 않는 범위에 있어서 여러가지 변경가능한 것은 물론이다.
예를 들면, 데이타전송제어장치는 단일의 데이타전송채널을 갖는 것이어도 좋다. 또, 자원선택정보에 의한 기억보호위반의 판정상태는 상술한 바와 같은 마이크로컴퓨터의 내외어드레스의 오검출 상태에 한정되지 않고, 보다 상세하게 기억보호위반의 상태를 판정해도 좋다. 도 20 및 도 21에서 설명한 기억보호위반의 판정표에 의한 판정논리를 좀 더 복잡하게 할 뿐이다.
또, DMAC의 출력어드레스신호를 버스스테이트콘트롤러 대신에 명령TLB 또는 일체화TLB에 공급하도록 구성하면, DMAC를 논리어드레스공간에 대해서 이용하는 것도 가능하다. 이 경우에도 DMAC는 TLB와는 다른 의미로 기억보호를 실현할 수 있다.
이상의 설명에서는 주로 본 발명자에 의해 이루어진 발명을 단일의 반도체기판에 집적화된 1칩의 마이크로컴퓨터에 적용한 경우에 대해 설명하였지만, 본 발명은 그것에 한정되는 것이 아니라 데이타전송제어장치, 마이크로컴퓨터를 예를 들면 TTL회로에 의해 구성하는 것도 가능하다.
본원에 있어서 개시되는 발명중 대표적인 것에 의해 얻어지는 효과를 간단히 설명하면 다음과 같다.
즉, 자원선택정보와 어드레스레지스터의 쌍방의 설정정보가 정합해서 비로소 데이타전송이 개시되므로, 데이타전송제어장치에 의한 데이타전송동작에 대한 기억보호에 높은 신뢰성을 얻을 수 있다. 또한, 기억보호위반에 대해서 데이타전송제어장치 스스로가 데이타전송동작을 억지할 수 있어 불필요한 데이타전송동작을 생략할 수 있다.
상기 기억보호에 이용되는 자원선택정보는 데이타전송요구에 대해 어떤 데이타전송채널을 사용할지를 판정하기 위한 정보와 겸용하는 것에 의해, 데이타전송채널의 기능할당과 데이타전송에 있어서의 기억보호의 쌍방에 대해 각각 제어정보를 설정하는 것을 필요로 하지 않아도 좋다.
메모리관리유닛의 기억보호가 직접적으로 작용하지 않는 데이타전송제어장치에 의한 데이타전송동작에 대해서도 액세스금지영역의 데이타보호를 실현할 수 있고, 그와 같은 데이타전송제어장치를 적용한 마이크로컴퓨터 또는 데이타처리시스템의 동작의 안전성을 높일 수 있다. 시스템동작의 안전성이 향상되므로 물리어드레스공간에 대해서 데이타전송제어장치를 안심하고 이용할 수 있고, 또 시스템의 구축도 용이하게 된다. 또, 상기 기억보호위반에 대해서 데이타전송제어장치 스스로가 데이타전송동작을 억지할 수 있어 불필요한 데이타전송동작을 생략할 수 있으므로, 데이타처리시스템 및 마이크로컴퓨터에 의한 데이타처리효율의 향상에 기여할 수 있다.

Claims (11)

  1. 데이타전송원어드레스 및 데이타전송지어드레스가 설정되는 어드레스레지스터,
    데이타전송원과 데이타전송지의 조합상태를 여러비트에 의해 지정하는 자원선택정보의 저장영역을 포함하는 제어레지스터,
    데이타전송요구가 있었을 때 상기 어드레스레지스터에 설정된 데이타전송원어드레스와 데이타전송지어드레스중의 적어도 한쪽이 상기 제어레지스터의 상기 자원선택정보에 의해 지정되는 데이타전송원과 데이타전송지의 조합상태에서 이탈하고 있는 어드레스에러를 검출하는 어드레스에러검출부 및
    상기 어드레스에러가 아닌 경우에는 상기 어드레스레지스터 및 제어레지스터의 정보를 사용한 데이타전송제어를 실행하고, 상기 어드레스에러가 검출된 경우에는 상기 데이타전송요구에 따른 데이타전송동작을 억지하는 제어회로를 포함하는 데이타전송제어장치.
  2. 각각이 어드레스레지스터와 제어레지스터를 갖는 여러개의 데이타전송채널, 상기 여러개의 데이타전송채널에 포함되는 어드레스레지스터와 제어레지스터에 접속되는 내부버스, 상기 내부버스를 외부와 인터페이스시키는 버스인터페이스회로 및 데이타전송요구에 따라서 상기 여러개의 데이타전송채널중의 하나의 데이타전송채널을 사용해서 상기 버스인터페이스회로를 거쳐 전송제어를 실행하는 제어회로를 갖는 데이타전송제어장치로서,
    상기 어드레스레지스터는 데이타전송원어드레스 및 데이타전송지어드레스가 설정되는 레지스터이고,
    상기 제어레지스터는 상기 제어레지스터를 포함하는 데이타전송채널에 할당되는 데이타전송요구원과 그 요구원으로부터의 데이타전송요구에 응답하는 데이타전송원 및 데이타전송지의 조합상태가 여러비트에 의해 지정되는 자원선택정보의 저장영역을 갖고,
    상기 어드레스레지스터에 설정된 데이타전송원어드레스와 데이타전송지어드레스중의 적어도 한쪽이 상기 데이타전송채널의 상기 제어레지스터에 포함되는 상기 자원선택정보에 의해 지정되는 데이타전송원과 데이타전송지의 조합상태에서 이탈하고 있는 어드레스에러를 검출하는 어드레스에러검출부를 갖고,
    상기 제어회로는 데이타전송요구가 있었을 때 그 요구원에 응답할 데이타전송채널을 상기 제어레지스터에 설정된 자원선택정보에서 판정하고, 상기 어드레스에러가 검출되지 않는 것을 조건으로 상기 데이타전송요구에 따른 데이타전송채널을 사용해서 데이타전송동작을 실행하는 데이타전송제어장치.
  3. 제 2항에 있어서,
    상기 내부버스에 접속되고 여러개의 데이타전송채널에 공통의 연산레지스터를 더 갖고,
    상기 연산레지스터는 데이타전송요구가 경합할 때 그들 데이타전송요구를 실행하는 데이타전송채널의 우선순위를 결정하기 위한 우선정보의 저장영역을 갖고,
    상기 제어회로는 상기 데이타전송채널의 판정에 있어서, 여러개의 데이타전송채널에 대한 데이타전송요구가 경합할 때, 상기 우선정보에 따라서 우선순위가 높은 데이타전송채널에 대한 데이타전송요구를 우선시키는 데이타전송제어장치.
  4. 제 1항에 있어서,
    상기 데이타전송제어장치는 마이크로컴퓨터에 마련되고,
    상기 마이크로컴퓨터는
    중앙처리장치,
    상기 중앙처리장치가 출력하는 논리어드레스를 물리어드레스로 변환하는 메모리관리유닛,
    상기 메모리관리유닛에서 출력되는 물리어드레스 또는 상기 데이타전송제어장치에서 출력되는 물리어드레스에 따라서 버스액세스사이클을 제어하는 버스스테이트콘트롤러,
    상기 버스스테이트콘트롤러에 주변버스를 거쳐 접속된 내장주변회로 및
    상기 버스스테이트콘트롤러에 결합된 외부버스인터페이스회로를 포함하고,
    상기 중앙처리장치는 상기 메모리관리유닛을 거쳐서 상기 데이타전송제어장치의 레지스터에 대한 설정을 실행하고,
    상기 데이타전송제어장치는 데이타전송요구에 응답해서 데이타전송을 실행할 때 상기 버스스테이트콘트롤러에 버스권요구신호를 어서트하고, 이것에 응답하는 버스권승인신호가 버스스테이스콘트롤러에서 어서트되는 것을 대기해서 데이타전송을 개시하는 데이타전송제어장치.
  5. 제 4항에 있어서,
    상기 마이크로컴퓨터는 1개의 반도체기판에 집적회로화되어 있는 데이타전송제어장치.
  6. 제 4항에 있어서,
    상기 마이크로컴퓨터는 데이타처리시스템에 포함되고, 상기 데이타처리시스템은 상기 마이크로컴퓨터의 상기 외부버스인터페이스회로에 결합된 외부버스와 상기 외부버스에 결합된 외부주변회로를 포함하는 데이타전송제어장치.
  7. 제 6항에 있어서,
    상기 마이크로컴퓨터가 내장하는 데이타전송제어장치에 있어서의 상기 어드레스에러검출부가 어드레스에러로서 검출하는 상태는 데이타전송요구에 따른 데이타전송원이 내장주변회로일 때 어드레스레지스터에 설정되어 있는 전송원어드레스가 외부주변회로를 지정하고 있는 상태, 데이타전송요구에 따른 데이타전송원이 외부주변회로일 때 어드레스레지스터에 설정되어 있는 전송원어드레스가 내부주변회로를 지정하고 있는 상태, 데이타전송요구에 따른 데이타전송지가 내장주변회로일 때 어드레스레지스터에 설정되어 있는 전송지어드레스가 외부주변회로를 지정하고 있는 상태 및 데이타전송요구에 따른 데이타전송지가 외부주변회로일 때 어드레스레지스터에 설정되어 있는 전송지어드레스가 내부주변회로를 지정하고 있는 상태인 데이타전송제어장치.
  8. 각각이 어드레스레지스터와 제어레지스터를 갖는 여러개의 데이타전송채널, 상기 여러개의 데이타전송채널에 공통의 연산레지스터, 상기 여러개의 데이타전송채널에 포함되는 어드레스레지스터 및 제어레지스터와 상기 연산레지스터에 접속되는 내부버스, 상기 내부버스를 외부와 인터페이스시키는 버스인터페이스회로 및 데이타전송요구에 따라서 상기 여러개의 데이타전송채널중의 하나의 데이타전송채널을 사용해서 상기 버스인터페이스회로를 거쳐 전송제어를 실행하는 제어회로를 갖는 데이타전송제어장치로서,
    상기 어드레스레지스터는 데이타전송원어드레스 및 데이타전송지어드레스가 설정되는 레지스터이고,
    상기 제어레지스터는 상기 제어레지스터를 포함하는 데이타전송채널에 할당되는 데이타전송요구원과 그 요구원으로부터의 데이타전송요구에 응답하는 데이타전송원 및 데이타전송지의 조합상태를 지정하는 자원선택정보의 저장영역을 갖고,
    상기 연산레지스터는 데이타전송요구가 경합할 때 그들 데이타전송요구를 실행하는 데이타전송채널의 우선순위가 설정되는 레지스터이고, 상기 어드레스레지스터에 설정된 데이타전송원어드레스와 데이타전송지어드레스중의 적어도 한쪽이 상기 데이타전송채널의 상기 자원선택정보에 의해 지정되는 데이타전송원과 데이타전송지의 조합상태에서 이탈하고 있는 어드레스에러를 검출하는 어드레스에러검출부를 갖고,
    상기 제어회로는 데이타전송요구가 있었을 때 그 요구원에 응답할 데이타전송채널을 상기 자원선택정보에서 판정함과 동시에, 여러개의 데이타전송채널에 대한 데이타전송요구가 경합하고 있을 때에는 상기 연산레지스터에 설정되어 있는 우선순위가 높은 데이타전송채널에 대한 데이타전송요구를 우선시키고, 데이타전송요구에 응답하는 하나의 데이타전송채널을 판별하고, 상기 어드레스에러가 검출되지 않는 것을 조건으로 상기 판별된 데이타전송채널을 사용해서 데이타전송을 실행하는 데이타전송제어장치.
  9. 제 8항에 있어서,
    상기 데이타전송제어장치는 마이크로컴퓨터에 마련되고,
    상기 마이크로컴퓨터는
    중앙처리장치,
    상기 중앙처리장치가 출력하는 논리어드레스를 물리어드레스로 변환하는 메모리관리유닛,
    상기 메모리관리유닛에서 출력되는 물리어드레스 또는 상기 데이타전송제어장치에서 출력되는 물리어드레스에 따라서 버스액세스사이클을 제어하는 버스스테이트콘트롤 및
    상기 버스스테이트콘트롤러에 결합된 외부버스인터페이스회로를 더 포함하고,
    상기 중앙처리장치는 상기 메모리관리유닛을 거쳐서 상기 데이타전송제어장치의 어드레스레지스터, 제어레지스터 및 연산레지스터에 대한 설정을 실행하는 데이타전송제어장치.
  10. 제 9항에 있어서,
    상기 마이크로컴퓨터는 데이타처리시스템에 마련되고, 상기 데이타처리시스템은 상기 마이크로컴퓨터의 상기 외부버스인터페이스회로에 결합된 외부버스와 상기 외부버스에 결합된 외부주변회로를 포함하는 데이타전송제어장치.
  11. 중앙처리장치,
    상기 중앙처리장치에 의해서 데이타전송원어드레스 및 데이타전송지어드레스가 설정되는 어드레스레지스터,
    데이타전송원과 데이타전송지의 조합상태를 여러비트에 의해 지정하는 자원선택정보의 저장영역을 포함하는 제어레지스터,
    데이타전송요구가 있었을 때 상기 어드레스레지스터에 설정된 데이타전송원어드레스와 데이타전송지어드레스중의 적어도 한쪽이 상기 제어레지스터의 상기 자원선택정보에 의해 지정되는 데이타전송원과 데이타전송지의 조합상태에서 이탈하고 있는 어드레스에러를 검출하는 어드레스에러검출부 및
    상기 어드레스에러가 아닌 경우에는 상기 어드레스레지스터 및 제어레지스터의 정보를 사용한 데이타전송제어를 실행하고, 상기 어드레스에러가 검출된 경우에는 상기 데이타전송요구에 따른 데이타전송동작을 억지하는 제어회로를 포함하는 데이타처리시스템.
KR1019980013034A 1997-04-16 1998-04-13 데이타전송제어장치, 마이크로컴퓨터 및 데이타처리시스템 KR19980081340A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP97-98602 1997-04-16
JP09860297A JP3790323B2 (ja) 1997-04-16 1997-04-16 データ転送制御装置、マイクロコンピュータ及びデータ処理システム

Publications (1)

Publication Number Publication Date
KR19980081340A true KR19980081340A (ko) 1998-11-25

Family

ID=14224168

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980013034A KR19980081340A (ko) 1997-04-16 1998-04-13 데이타전송제어장치, 마이크로컴퓨터 및 데이타처리시스템

Country Status (4)

Country Link
US (2) US6202154B1 (ko)
JP (1) JP3790323B2 (ko)
KR (1) KR19980081340A (ko)
TW (1) TW393610B (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100429724B1 (ko) * 2000-05-19 2004-05-03 마츠시타 덴끼 산교 가부시키가이샤 고성능 dma 콘트롤러
KR100708567B1 (ko) * 2004-12-24 2007-04-19 후지쯔 가부시끼가이샤 Dma 회로 및 이것을 이용한 디스크 어레이 장치

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3790323B2 (ja) * 1997-04-16 2006-06-28 株式会社ルネサステクノロジ データ転送制御装置、マイクロコンピュータ及びデータ処理システム
JPH11110294A (ja) * 1997-10-01 1999-04-23 Toshiba Corp マイクロコンピュータ及び情報処理装置
FR2784475B1 (fr) * 1998-10-12 2000-12-29 Centre Nat Etd Spatiales Procede de traitement d'un systeme electronique soumis a des contraintes d'erreurs transitoires
JP4516693B2 (ja) * 1998-12-07 2010-08-04 アルボス テクノロジーズ リミテッド リミテッド ライアビリティ カンパニー コンピュータ、アドレス有効性照合プログラムを記録した記録媒体、及びアドレス有効性照合方法
EP1450252B1 (en) * 2001-11-29 2010-08-18 Fujitsu Limited Central processing unit, method, and operation program for managing a plurality of operation modes
JP3866597B2 (ja) * 2002-03-20 2007-01-10 株式会社東芝 内部メモリ型耐タンパプロセッサおよび秘密保護方法
JP3970705B2 (ja) * 2002-07-05 2007-09-05 富士通株式会社 アドレス変換装置、アドレス変換方法および2階層アドレス変換装置
US7000045B2 (en) * 2002-08-28 2006-02-14 Lsi Logic Corporation Byte-enabled transfer for a data bus having fixed-byte data transfer
JP2004334410A (ja) 2003-05-06 2004-11-25 Hitachi Ltd 情報処理装置及びプロセッサ
JP2005293478A (ja) * 2004-04-05 2005-10-20 Hitachi Ltd 記憶制御システム、記憶制御システムに備えられるチャネル制御装置、データ転送装置
JP2007272261A (ja) * 2004-06-24 2007-10-18 Matsushita Electric Ind Co Ltd 情報処理装置
JP4533713B2 (ja) * 2004-09-30 2010-09-01 株式会社東芝 情報処理装置およびデータ転送制御方法
US20070005553A1 (en) * 2005-06-30 2007-01-04 Ravi Sahita System for composite instrumented resource data
EP1801700B1 (en) * 2005-12-23 2013-06-26 Texas Instruments Inc. Method and systems to restrict usage of a DMA channel
US7826356B2 (en) * 2006-11-08 2010-11-02 International Business Machines Corporation Method and system for controlling flow in an asymmetric communication channel
JP2009070327A (ja) * 2007-09-18 2009-04-02 Panasonic Corp 情報端末及び情報端末の制御方法
US7895404B2 (en) * 2008-02-14 2011-02-22 Atmel Rousset S.A.S. Access rights on a memory map
JP2009211248A (ja) * 2008-03-03 2009-09-17 Panasonic Corp Dma転送装置
JP5433349B2 (ja) 2009-08-27 2014-03-05 ルネサスエレクトロニクス株式会社 データプロセッサ
JP2010049718A (ja) * 2009-12-03 2010-03-04 Hitachi Ltd 半導体装置
JP6266308B2 (ja) * 2013-11-07 2018-01-24 ルネサスエレクトロニクス株式会社 半導体装置
JP7257772B2 (ja) * 2018-10-31 2023-04-14 ルネサスエレクトロニクス株式会社 半導体装置を用いるシステム

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3810101A (en) * 1971-12-29 1974-05-07 Burlington Industries Inc Data collection system
JPS62191950A (ja) 1986-02-18 1987-08-22 Fujitsu Ltd Cpuシステム
JPH01250162A (ja) 1988-03-30 1989-10-05 Toshiba Corp メモリライト方式
JPH02297235A (ja) 1989-03-22 1990-12-07 Nec Corp メモリデータ保護回路
JPH0711793B2 (ja) * 1989-07-13 1995-02-08 株式会社東芝 マイクロプロセッサ
US5546561A (en) * 1991-02-11 1996-08-13 Intel Corporation Circuitry and method for selectively protecting the integrity of data stored within a range of addresses within a non-volatile semiconductor memory
JPH06119250A (ja) 1992-10-08 1994-04-28 Nitsuko Corp メモリ情報保護回路及びメモリ情報保護方法
JPH06266648A (ja) 1993-03-16 1994-09-22 Fujitsu Ltd データ転送制御方式
FR2713803B1 (fr) * 1993-12-07 1996-01-12 Gemplus Card Int Carte à mémoire et procédé de fonctionnement.
KR0160193B1 (ko) * 1995-12-30 1998-12-15 김광호 직접메모리접근 제어장치
JPH10228421A (ja) * 1997-02-14 1998-08-25 Nec Ic Microcomput Syst Ltd メモリアクセス制御回路
JP3790323B2 (ja) * 1997-04-16 2006-06-28 株式会社ルネサステクノロジ データ転送制御装置、マイクロコンピュータ及びデータ処理システム
US6049876A (en) * 1998-02-09 2000-04-11 Motorola, Inc. Data processing system and method which detect unauthorized memory accesses
JP3729638B2 (ja) * 1998-04-22 2005-12-21 富士通株式会社 メモリデバイス

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100429724B1 (ko) * 2000-05-19 2004-05-03 마츠시타 덴끼 산교 가부시키가이샤 고성능 dma 콘트롤러
KR100708567B1 (ko) * 2004-12-24 2007-04-19 후지쯔 가부시끼가이샤 Dma 회로 및 이것을 이용한 디스크 어레이 장치

Also Published As

Publication number Publication date
JPH10289194A (ja) 1998-10-27
TW393610B (en) 2000-06-11
JP3790323B2 (ja) 2006-06-28
US6202154B1 (en) 2001-03-13
US6496934B2 (en) 2002-12-17
US20010000084A1 (en) 2001-03-29

Similar Documents

Publication Publication Date Title
KR19980081340A (ko) 데이타전송제어장치, 마이크로컴퓨터 및 데이타처리시스템
US5255384A (en) Memory address translation system having modifiable and non-modifiable translation mechanisms
US5091846A (en) Cache providing caching/non-caching write-through and copyback modes for virtual addresses and including bus snooping to maintain coherency
US4860192A (en) Quadword boundary cache system
US6049841A (en) Method and apparatus of selecting data transmission channels
US4899275A (en) Cache-MMU system
US4933835A (en) Apparatus for maintaining consistency of a cache memory with a primary memory
US5263142A (en) Input/output cache with mapped pages allocated for caching direct (virtual) memory access input/output data based on type of I/O devices
US4884197A (en) Method and apparatus for addressing a cache memory
KR100327854B1 (ko) 캐시메모리시스템
EP0917063A2 (en) Data processing system and microprocessor
JPH10149315A (ja) 高性能キャッシュ・アービトレーションのための方法およびシステム
US6892266B2 (en) Multicore DSP device having coupled subsystem memory buses for global DMA access
CN103778099B (zh) 信息处理设备
US5553268A (en) Memory operations priority scheme for microprocessors
US6003106A (en) DMA cache control logic
US6519690B1 (en) Flexible address programming with wrap blocking
EP0196244B1 (en) Cache MMU system
US6163815A (en) Dynamic disablement of a transaction ordering in response to an error
KR100508581B1 (ko) 버스제어방법및그방법을이용한장치
CA1269176A (en) Multiple bus system including a microprocessor having separate instruction and data interfaces and caches
JP7468112B2 (ja) インタフェース回路およびインタフェース回路の制御方法
US7356649B2 (en) Semiconductor data processor
EP0598570B1 (en) Microprocessor comprising region configuration system and method for controlling memory subsystem operations by address region
KR19980079687A (ko) 데이타 버퍼가 부착된 s m p 메모리 제어기에 있어서의 대기 시간이 짧은 제 1 데이타 억세스

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid