KR100344132B1 - 컴퓨터 메모리 인터페이스용 장치와, 휴대용 이동 컴퓨터와 그 컴퓨터에서의 프로그램 명령 페치 및 데이타 기록/판독 요청 수행 방법 - Google Patents

컴퓨터 메모리 인터페이스용 장치와, 휴대용 이동 컴퓨터와 그 컴퓨터에서의 프로그램 명령 페치 및 데이타 기록/판독 요청 수행 방법 Download PDF

Info

Publication number
KR100344132B1
KR100344132B1 KR1019950024802A KR19950024802A KR100344132B1 KR 100344132 B1 KR100344132 B1 KR 100344132B1 KR 1019950024802 A KR1019950024802 A KR 1019950024802A KR 19950024802 A KR19950024802 A KR 19950024802A KR 100344132 B1 KR100344132 B1 KR 100344132B1
Authority
KR
South Korea
Prior art keywords
memory
data
request
program
program instructions
Prior art date
Application number
KR1019950024802A
Other languages
English (en)
Other versions
KR960008564A (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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=23107022&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=KR100344132(B1) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by 에이티 앤드 티 코포레이션 filed Critical 에이티 앤드 티 코포레이션
Publication of KR960008564A publication Critical patent/KR960008564A/ko
Application granted granted Critical
Publication of KR100344132B1 publication Critical patent/KR100344132B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3812Instruction prefetching with instruction modification, e.g. store into instruction stream
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/4031Coupling between buses using bus bridges with arbitration
    • 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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3824Operand accessing

Abstract

향상된 하바드 구조를 갖는 이동 컴퓨터 시스템은 자체 변경 코더 및/또는 데이타를 포함하는 프로그램 명령을 각기 내포하는 2 개의 메모리 기억 영역을 액세스하는 2 개의 메모리 인터페이스를 포함하는 것을 구비한다. 마이크로프로세서의 조정 유니트는 주어진 명령 페치 또는 데이타 판독/기록 요청에 대해 사용하기 위해 인터페이스하는 것을 결정하는 제어처리기를 수행시킨다.

Description

컴퓨터 메모리 인터페이스용 장치와, 휴대용 이동 컴퓨터와 그 컴퓨터에서의 프로그램 명령 페치 및 데이타 기록/판독 요청 수행 방법
본 발명은 향상된 하바드(harvard) 구조가 휴대용 계산장치와 같은 응용기기에 사용되는 컴퓨터 처리 장치 및 방법에 관한 것이고, 거기에서 동작 시스템 코드, 응용 코드, 및 판독전용 데이타가 ROM 에 포함되고 사용자 데이타와 응용 코드가 RAM 에 있다.
현재 가용한 마이크로프로세서는 메모리에 인터페이스하는 2 개의 공지된 구조중 하나를 통상적으로 사용한다. 상기 구조는 폰 노이만(Von Neumann) 구조 및 하바드 구조로써 공지된다. 마이크로프로세서에 인터페이스된 메모리는 동일한 칩상에서 마이크로프로세서로써 집적되거나 마이크로프로세서 칩에 외부에 위치된다.
제 1 도에 도시된 폰 노이만 구조에서, 마이크로프로세서는 하나의 인터페이스에 의해 프로그램 명령 및 데이타 둘다를 기억하기 위해 사용되는 단일의 메모리 시스템에 링크된다. 그러므로, 프로그램 명령 코드 또는 데이타만이 주어진 시간에서 마이크로프로세서에 이동될 수 있으나 둘다 동시에 되지는 않는다. 제 2 도에 도시된 종래의 하바드 구조는 분리된 메모리에 기억된 프로그램 명령 및 데이타의 동시 액세스를 허여함으로써 컴퓨터 동작 속도 증가시키도록 고안된다. 분리된 버스 인터페이스는 각 2 개의 메모리를 가능한한 동시 동작되도록 구비된다. 상기 2 중 버스 인터페이스의 결과로써, 종래의 하바드 구조를 사용하는 마이크로프로세서는 폰 노이만 구조를 사용하는 마이크로프로세서에 의해 수행된 동일한 동작을 수행하기 위해 적은 사이클을 요구한다. 그것은 왜냐하면 예를들어 종래의 하바드 구조를 갖는 마이크로프로세서에서, 프로그램 메모리로부터의 명령 페치는 데이타 메모리에 또는 데이타 메모리로부터 데이타 판독/기록 요청을 동시에 수행될 수 있다.
그러므로, 종래의 하바드 구조는 폰 노이만 구조에 비해 명백히 우수한 성능을 갖는다. 특히, 종래의 하바드 구조에서, 장치간에 한 사이클에서 전송된 정보(데이타 또는 코드중 하나)량을 나타내는 대역폭이 분리한 버스를 통해 동시에 동작하는 2 개의 인터페이스로써 증가된다. 상기 이유로 인해, 종래의 하바드 구조는 고성능 시스템에서 일반적으로 발견된다.
그러나, 종래의 하바드 구조가 2 개의 인터페이스에 연결된 메모리 시스템이 어떻게 사용되는지에서 유연성 부족과 관련해서 결점을 갖는다. 상기 유연성 부족으로부터 야기된 문제는 다음과 같은데, 즉, 프로그램 코드 및 판독 전용데이타를 분리할 필요성과, 자체 변경 코드(마이크로프로세서가 데이타 액세스를 사용하는 프로그램 메모리를 변경할 수 있는 것을 요구하는) 및 프로그램 메모리를 시험할때 증가된 복잡성을 지지하기 위한 불능이 포함된다.
마이크로프로세서는 사용자 응용 코드 및 동작 시스템을 기억하는 하드 디스크와 같은 대량 기억 매체 또는 비휘발성 고체 상태 메모리를 사용한다. 상기 포함된 많은 응용기기는 저가격이고, 최소 전력 낭비, 저 중량을 요구한다. 따라서, 통상적으로 포함된 용용은 ROM 과 같은 비-휘발성 메모리를 사용한다. ROM 은 동작 시스템 코드와, 사용자 응용 코드와, 판독전용 데이타를 통상적으로 포함한다. ROM 액세스 시간은 RAM 액세스 시간보다 일반적으로 더 느리다. ROM 을 사용하는 시스템에서, 상기 결함은 시스템 성능을 저하시킨다.
그러므로, ROM 과 관련된 성능 저하를 보상하기 위해 폰 노이만 구조보다 더 빠른 하바드 구조와 같은 더욱 효과적인 마이크로프로세서 구조를 사용하는 것이 바람직하다. 그러나, ROM 이 자체 변경 코드와, 판독 전용 데이타를 포함하는 프로그램 명령 둘다를 포함하기 때문에, 종래의 하바드 구조는 전용의 프로그램 명령을 가지며 그 자신의 버스상에 각 데이타 메모리는 상기 특수한 응용에서 작동하지 않는다.
프로그램 메모리를 데이타로써 액세스하기 위한 불능은 프로그램 메모리를 시험할 임무를 더욱 어렵게 한다. 마이크로프로세서가 데이타 액세스를 통해 메모리를 액세스할 수 있을때, RAM 및 ROM 둘다를 시험하기 위해 현재 존재하는 확정된 절차가 양호하게 존재한다. 상기 공지된 절차는 ROM 및 RAM 에서는 어렵다. ROM 은 ROM 에서 모든 엔트리틀 판독하는 것을 요구하는 사이클릭 리던던시 첵킹(cyclic redundancy checking: CRC)또는 첵크섬의 (checksums) 사용을 통해 통상적으로 시험된다. RAM 은 공지된 데이타 패턴 및 어드레스 시퀀스 또는 내장된 자체 시험을 기록한후 판독함으로써 시험된다.
따라서, 이동용 또는 휴대용 계산 및 고성능 시스템 응용기기에서 사용되는 컴퓨터 시스템 구조가 필요하게 되고, 판독 전용 데이타 및 자체 변경 코드를 지지하는 동안 종래의 하바드 구조의 2 중 버스 인터페이스가 장점을 제공하고 여기서 명령 및 데이타는 독립적인 버스에 의해 마이크로프로세서에 연결된 각 2 개의 메모리 기억 영역에서 저장된다.
본 발명은 프로그램 메모리 및 자체 변경 코드와 병존하는 판독 전용 데이타를 지지하는 컴퓨터 시스템용의 향상된 하바드 구조를 사용하는 컴퓨터 처리용 장치 및 방법을 제공한다. 향상된 하바드 구조는 폰 노이만 구조에 의해 구비된 메모리 사용법에서 유연성을 갖는 종래의 하바드 구조 성능의 장점과 결합한다. 본 발명의 마이크로프로세서는 2 개의 인터페이스 버스를 가져서 프로그램 코드 및 데이타를 페치하고 데이타를 기억한다. 인터페이스는 조정 메모리 형태용 지지를 가지면서 동일하거나, 인터페이스는 다르다.
예들 들어, 양호한 실시예에서, ROM 만이 하나의 버스에 인터페이스되길 원한다면, 하나의 버스는 전용의 ROM 인터페이스를 갖는다. 전용의 ROM 인터페이스는 분리된 외부 버스 조정자(arbiter)를 필요치 않고 또한 관련된 타이밍 페널티(penalty)를 구한다. 나머지 인터페이스는 조정 메모리 형태들 지지하는 종래의 버스 인터페이스이다. 본원에서 설명되는 향상된 하바드 구조가 사용되면서, 마이크로프로세서는 프로그램 코드 및 데이타를 ROM 으로부터 ROM 인터페이스를 경유해 페치시키는 반면에, 그것은 프로그램 코드 및 데이타를 페치하고 부가해서 데이타를 종래의 인터페이스를 경유해 나머지 메모리에 기억시킨다.
본 발명은 그 버스를 통해 결정될 문제를 해결하고 특수한 트랜잭션(transactions)은 메모리 액세스로 하여금 명령 페치 유니트 또는 데이타 판독/기록 유니트에 의해 이루어진 버스중 하나에 마이크로프로세서 요청을 서비스하는 새로운 온칩조정 유니트 이용함으로써 이루어져야한다. 요청은 정보가 메모리 관리 변환표에서 제어 비트를 예로하는 메카니즘을 거쳐서 들어오는 그 버스를 경유해 특정화한다. 데이타의 경우에, 요청은 그것이 판독 또는 기록 요청인지를 특정화하고 프로그램 명령 페치 유니트로부터의 요청의 경우에, 판독 요청만이 이루어진다.
종래의 폰 노이만(Von Neumann) 구조를 갖는 종래 기술의 마이크로프로세서(10)가 도시되는 제 1 도에서, 프로그램 명령 및 데이타 둘다는 마이크로프로세서(10)에 의해 액세스용 외부 메모리(12)에 기억된다. 마이크로프로세서(10)는 외부 메모리(12)에 인터페이스하는 하나의 입력/출력("I/O") 버스(14)를 갖는다. 마이크로프로세서(10)는 명령 또는 프로그램 페치(fetch) 유니트(16) 및 데이타 판독/기록 유니트(18)로부터 메모리에 액세스하는 2 개의 공지된 소스들 포함한다. 각 소스는 단일 버스(14)상에서 메모리만에 요청을 할 수 있다.
그러므로, 마이크로프로세서(10)로 하여금 프로그램 코드 또는 데이타들 페치하도록 트랜잭션하거나 데이타를 외부 메모리(12)에 기억하도록 하기 위해 그것은 상기 단일 버스(14)를 통해 행해져야 한다. 그러므로, 프로그램 명령 코드 또는 데이타만이 어느 순간에 마이크로프로세서(10)에 공급될 수 있으나 둘다 동시에는 공급될 수 없다. 프로그램 페치 유니트(16) 또는 데이타 판독/기록 유니트(18)로부터 각기 초기화된 프로그램 명령 페치 요령 또는 데이타 판독/기록 요청을 서비스하기 위해, 마이크로프로세서(10)는 조정(arbitration) 유니트(20)를 포함한다.
제 2 도에 도시된 종래의 하바드(harvard) 구조는 명령페치 및 데이타 판독/기록 요청을 실행하기 위해 요구된 클럭 사이클수를 감소시킴으로써 마이크로프로세서 동작을 속도 증가되도록 이미 고안되었다. 종래의 하바드 구조에서, 마이크로프로세서(22)는 2 개의 분리된 전용 인터페이스를 경유해 2 개의 독립적인 외부 메모리(24, 26)에 인터페이스된다. 명령 메모리(26)로써 자주 언급되는 프로그램 메모리(24)는 프로그램 명령만을 기억하는 반면에, 데이타 메모리(26)는 데이타만을 기억한다. 주어진 버스 사이클 동안, 프로그램 메모리(24)는 프로그램 명령 코드를 프로그램 페치 버스(30)를 경유해 프로그램 페치 유니트(28)에 공급하고, 데이타 메모리(26)는 데이타를 데이타 액세스 버스(34)를 경유해 데이타 판독/기록 유니트(32)에 동시에 공급한다.
제 3 도는 본 발명의 구조를 설명하는 블럭도이다.
명료성을 위해 마이크로프로세서에 관련해서 본원에서 설명했지만 본원의 구조는 상기 기술에 관련된 자에 의해 예를 들어 마이크로제어기 뿐만 아니라 다른 일체화된 계산 장치에 응용 가능되도록 이해되어진다. 마이크로프로세서(40)는 2 개의 버스(42, 44)를 가져서 각기 2 개의 분리된 메모리 시스템(46, 48)에 인터페이스한다. 인터페이스는 조정 메모리 형태에 대해 지지로써 동일하나, 상기 인터페이스는 다르다. 나중의 예는 예를 들어 ROM, PROM, EPROM, FLASH, E2PROM 등과 같은 판독전용 메모리와, 예를 들어 RAM 인 다르게 지지하는 조정 메모리 형태에 전용된 하나의 인터페이스로 된다. 다음의 설명을 목적으로해서, 일반적인 두문자어 RAM 및 ROM 이 사용되고, 다르게 분리되게 인지되지 않으면, 상기 기술에 숙련된 자에 의해 상기 리스트된 것과 같은 그 일반적인 메모리 형태로 되는 공지된 다양한 메모리 형태로 언급되도록 이해된다.
마이크로프로세서(40)는 프로그램 페치 유니트(50) 및 데이타 판독/기록 유니트(52)와 같은 명령 페치 유니트를 예로하는 2 개의 공지된 메모리 액세스 소스를 포함한다. 각 소스는 상기 정의된 버스(42, 44)중 어느 하나상에서 요청을 메모리에 할 수 있게 한다. 상기 요청은 그것이 판독 또는 기록 요청인지를 포함한다. 소스가 프로그램 페치 유니트(50)이면, 요청은 프로그램 명령의 판독 또는 페치용만으로 된다.
마이크로프로세서(40)는 프로그램 페치 유니트(50) 또는 데이타 판독/기록 유니트(52)중 하나로부터 발생하는 메모리 액세스용 요청을 서비스하는 일체화 조정 유니트(54)를 포함한다. 제 4 도의 블럭도에서 도시했듯이, 조정 유니트(54)는 블럭(56) 및 2 개의 버스 제어기(58, 60)에 의해 표시된 제어처리로 분할된다. 제어 처리(56)는 버스가 명령 또는 데이타 액세스용으로 주어진 요청으로 사용되도록 제어한다. 더욱 중요하게, 동일한 버스에 2 개의 요청이 동시에 발생될때, 제어 처리(56)는 액션(actions)을 얻어지도록 결정한다.
조정 유니트 제어 처리(56)는 각 버스 제어기(58, 60)동작을 제어한다. 특히, 제어 처리(56)는 프로그램 페치 유니트(50) 또는 데이타 판독/기록 유니트(52)로부터 알맞은 버스 연결부로 발생하는 요청간에 맵핑(mapping)을 정의한다.
조정 유니트 제어 처리(56)의 맵핑은 입력으로써의 프로그램 페치 유니트(50) 및 데이타 판독/기록 유니트(52) 둘다와, 출력으로써의 버스 연결부로부터 모든 가능한 요청값을 갖는 진리표로써 나타낸다. 제 5 도는 번호 매겨진 "이벤트(events)"와 같이 프로그램 페치 유니트(50) 및 데이타 판독/기록 유니트(52)로부터 각기 가능한 동시 요청을 리스트하는 가능한 진리표의 예를 도시한다. 대안적으로, 일정한 진리표가 사용되거나 제어처리가 최근의 요청을 토대로한 진리표의 출력값을 조절한다. 무수한 다른 진리표가 제 5 도의 진리표 대신에 사용되는 것이 이해된다. 출력값을 참으로 조정할 때의 예는 주어진 버스를 계속 사용하는 소스를 주며, 그 버스상의 우선 순위는 버스트 모드 또는 페이지 모드 메모리의 더욱 효과적인 사용을 허여한다. 제 6 도는 제 5 도의 진리표를 수행하는 흐름도이다.
특히, 제 6 도는, 동일한 버스에 2 개의 요청이 동시에 발생할때 진리표 기능을 수행하는, 즉, 공지된 제어 처리 논리 회로를 통해 선택된 명령 페치 또는 데이타 판독/기록 액세스 요청으로 주어진 프리퍼런스(preference)를 실행하는 박스 라벨된 "소스 선택"을 갖는 제어 처리(56)의 흐름도이다.
제어 처리(56)는 어드레스 디코딩과 병렬로 동작되어 버스에 대한 연결부는 칩 선택과 같은 메카니즘을 경유해 특수한 메모리(46, 48)를 인에이블시킬 수 있는 어드레스 디코딩 시간에 의해 행해진다. 그것은 버스 연결부를 스위칭할때 최소의시간 오버 헤드(overhead)를 허여한다.
제어 처리(56)가 동일한 버스에 대해 2 개의 요청을 할때, 요청중 하나는 처리를 시작하고 다른 것은 대기 상태를 포함시켜서 들어간다.
제 6 도와 연관된 제 5 도에서의 제어 처리 동작에서, 프로그램 페치 또는 데이타 판독/기록 요청이 이루어질때서야 (단계(610 및 620)) 마이크로프로세서는 루프(제 5 도의 진리표의 이벤트 1 에 대응하는)에 있다. 거기에는 다음과 같은 4 개의 기본적인 상황이 있는데, 즉, 프로그램 명령 전용 요청(이벤트 6 및 11)과, 데이타 판독 또는 기록 전용 요청(이벤트 2-5)과, 프로그램 명령과 버스 충돌없는데이타 판독 또는 기록중 하나에 대한 요청(이벤트 8, 10, 12, 및 14)과, 프로그램 명령과 버스 충돌없는 데이타 판독 또는 기록중 하나에 대한 요청(이벤트 7, 9, 13, 및 15)이다.
요청이 프로그램 명령만 또는 데이타만 중의 어느 하나로 이루어질때, 알맞은 액세스가 즉시 만족된다(각기 이벤트 6 및 17 과 2 내지 5). 요청이 프로그램 명령 및 데이타에 대해 이루어질때 그리고 상기 요청이 충돌되지 않을때, 즉, 그들이 다른 버스를 요구할때, (이벤트 8, 10, 12 및 14), 제어 처리(56)(단계 680)는 요청으로 하여금 동시에 실행하도록 한다. 그러나, 동시 요청이 단계(660)(이벤트 7, 9, 13 및 15)에 대한 확정적인 응답에서처럼 동일한 버스상에 프로그램 명령 및 데이타 둘다에 대해 이루어질때, 제어 처리(56)(단계 670)는 제 5 도의 진리표의 이미 배정된 우선 순위를 토대로한 소스, 즉, 프로그램 페치 유니트(50) 또는 데이타 판독/기록 유니트(52)중 하나를 선택하고 상기 소스 우선 순위들 충돌적인 버스상에 주는 상기 선택된 액세스(단계 670, 690)를 시작한다. 제어 처리는 특수한 응용을 요구하는 것을 근거로한 이미 배정된 우선 순위와 결합한다. "이미 배정된 우선 순위"는 일정한데, 즉, 정적이거나 동적이다. 동적으로 이미 배정된 우선 순위예에서 우선 순위는 충돌중인 버스상에서 가장 빈번히 만들어진 요청 또는 충돌중인 버스상에서 가장 최근의 과거 요청에 주어진다.
제어 처리가 그 버스(42, 44)를 통해 확인되는 하나의 예시적인 방법에서, 요청이 루트(route)되고, 프로그램 페치 유니트(50) 및 데이타 판독/기록 유니트(52)는 요청되는 버스를 나타내기 위해 메모리 관리 변환표 또는 가능한한하나인 적은 수의 어드레스 비트에서 제어 비트를 사용한다. 앞의 방법은 제 7 도에서 예시된다. 프로그램 페치 유니트(50) 및 데이타 판독/기록 유니트(52)는 가상 메모리 시스템을 포함하는데, 즉, 양호한 실시예에서 그것은 변환 색인 버퍼(translation lookaside, buffer; TLB)들 결합시킴으로써 수행되고, 거기에서 가상 어드레스(710)로부터 물리적인 어드레스(720)로의 변환은 요청하기 전에 행해진다. 상기 경우, 변환을 행하는 메모리 관리 유니트는 특수한 가상 어드레스가 버스에 맵되는 것을 확인하는 변환표(730)에서 분리 비트를 제공한다. 상기 예는 제 7 도에 예시되고 거기에서 "V"는 상기 비트에 포함된 논리 1 이 유효 어드레스를 나타내고 논리 0 이 무효 어드레스틀 나타내는 유효 비트이다. "B" 비트는 버스 비트이고 거기에서 상기 비트에 포함된 논리 1 은 버스 1(제 3 및 4 도의 버스(42))이 사용되는 것을 표시하며 상기 비트에 포함된 논리 0 은 버스(2)(제 3 및 4 도의 버스 (44))가 사용되는 것을 표시한다.
물리적인 어드레스(720)와 관련된 것은 물리적인 어드레스 베이스와, 오프세트 및 제어 비트("B" 및 "V")이다. 그러나, 제 7 도는 가상 어드레스가 물리적인 어드레스로 어떻게 변환될 수 있는지 그리고 제어 비트("B" 및 "V")가 어떻게 액세스될 수 있는지의 하나의 예만을 예시한다. 그러나, 나머지 어드레스 변환 계획이 사용된다고 상상한다.
제 8 도는 개인 통신 장치 또는 개인 디지탈 보조 수단으로써 공지된 다른 전형적인 이동 및 휴대용 계산 시스템의 시스템 설계 계획의 블럭도이다. 마이크로프로세서(810)는 상기 설명되는 향상되거나 변경된 하바드 구조들 이용하기 위해구성되고 ROM(812) 및 RAM(814)에 인터페이스된다.
시스템 관리 제어기(820)는 다수의 버스 매스터용 버스조정을 하는 조정자와; 시스템 클럭 발생기와; 클럭 및 전원제어를 위한 인터럽트 파워 관리용 인터럽트 제어기와; 국부적으로 지지된 RAM 리프레시(refresh)를 갖는 동적 RAM 및 정적 RAM 제어기와; 칩 선택 어드레스 디코더와; 동기 직럴 키보드 포트와; 예를 들어 모뎀(830)에 의해 사용되는 비동기 통신포트와; 47 비트 카운터 및 알람과 3 개의 프로그램 가능한 간격 타이머를 포함하는 실시간 클럭과; 인터럽트 입력 또는 상태 출력용 I/O 포트를 필수적으로 구비한다. 시스템 관리 제어기의 예는 뉴져지의 AT&T 에서 시판중인 ATT92011 시스템 관리 제어기이다.
개인 컴퓨터 메모리 카드 국제 협회의 릴리스(Release) 2.0 ("PCMCIA") 제어기(850)는 PCMCIA 슬롯(860)을 통한 메모리 카드에 플러그를 가산하는 방법을 구비하는 IEEE 표준 인터페이스이고, 예를 들어 그것은 다른 응용을 포함하거나 그들상에 더 많은 메모리 기억을 갖기 위해 부가 정보들 기억한다. PCMCIA 제어기의 예는 AT&T 에서 시판된 ATT92012 PCMCIA 제어기이다.
주변 제어기(870)는 처리기 버스 및 블럭(880)에 의해 표시된 특수하게 공지된 I/O 장치간의 인터페이스로써 일반적으로 기능하기 위해 4 개의 직접 메모리 액세스(DMA) 채널을 포함하는 DMA 및 산업 표준 구조(ISA) 인터페이스를 지지한다. 예를 들어, 주변 제어기는 예들 들어 개인 컴퓨터의 버스에 버스를 연결시킨다. 그것은 호스트 처리기 버스와 DMA 능력을 갖는 병렬 I/O 장치간에 인터페이스를 구비한다. 그런 제어기의 예는 AT&T 에서 시판하는 ATT92013 주변 제어기이다.
비디오 표시 제어기(890)는 LCD 구동기 인터페이스 또는 CRT 호환성 인터페이스를 구비하며 LCD(910) 또는 CRT 상에 표시되어가는 정보용 비트 맵을 필수적으로 포함하는 블럭 비디오 메모리(900)에 의해 표현된 비디오 RAM 에 인터페이스를 갖는다. 비디오 표시 제어기의 예는 AT&T 에서 시판하는 ATT92014 표시 제어기이다.
블럭(920)는 시스템의 다수의 소자를 포함하는 하우징 또는 봉입물(enclosure) 나타낸다. 하우징은 사용자의 한 손바닥내에 잡을 수 있도록 구성되는 크기로 된다.
설명된 것이 본 발명의 원리의 응용을 단지 예시한 것이다. 다른 장치 및 방법은 본 발명의 정신 및 범위를 벗어남이 없이 상기 기술에 숙련된자에 의해 수행될 수 있다.
제 1 및 2 도는 종래기술인 마이크로프로세서 구조의 블럭 다이어그램 예시도.
제 3 도는 본 발명의 구조의 블럭 다이어그램도.
제 4 도는 본 발명의 조정(arbitration) 유니트의 블럭 다이어그램도.
제 5 도는 제 4 도의 조정 유니트용 제어 처리의 진리표.
제 6 도는 제 4 도의 조정 유니트용 제어 처리의 흐름도.
제 7 도는 본 발명의 가상 메모리 변환표 맵핑 계획 예시도.
제 8 도는 이동 또는 휴대가능한 개인 계산 시스템용 일반적인 설계 계획의 블럭도.
* 도면의 주요 부분에 대한 부호의 설명
16,28 : 프로그램 페치(fetch) 유니트
26 : 데이타 메모리 32 : 데이타 판독/기록 유니트
54 : 조정 유니트 56 : 제어 처리

Claims (15)

  1. 향상된 하바드(Harvard) 구조를 사용하는 컴퓨터 메모리 인터페이스용 장치에 있어서,
    a) 프로그램 명령 및 데이타를 기억하는 제 1 메모리 수단으로서, 상기 프로그램 명령중 적어도 일부는 명령 데이타를 발생하는 자체 변경 코드를 포함하고, 상기 명령 데이타는 교대로 프로그램 명령으로서 실행될 수 있는 상기 제 1 메모리 수단과;
    b) 프로그램 명령 및 데이타를 기억하는 제 2 메모리 수단과;
    c) 각 제 1 및 2 인터페이스 버스에 의해 상기 제 1 및 2 메모리 수단에 결합된 처리기를 포함하고, 상기 처리기는
    상기 제 1 및 2 메모리 수단으로부터 프로그램 명령의 페치를 요청하는 수단과,
    상기 처리기 및 상기 제 1 메모리 수단간의 그리고 상기 처리기 및 상기 제 2 메모리 수단간의 데이타 전송을 요청하는 수단과,
    특수한 프로그램 명령 페치 또는 데이타 전송이 발생되는 제 1 및 2 메모리 버스 인터페이스중 어느 것을 조정하는 수단을 포함하는 컴퓨터 메모리 인터페이스용 장치.
  2. 제 1 항에 있어서,
    상기 조정 수단은 요청 제어기와 제 1 및 2 버스 제어기를 포함하며,
    상기 요청 제어기는 상기 프로그램 명령 페치 요청 및 데이타 전송 요청을 모니터하고 상기 제 1 및 2 버스 제어기로 하여금 이미 배정된 우선 순위를 토대로 하여 상기 제 1 또는 2 메모리 버스 인터페이스를 통해 명령 페치 또는 데이타 전송을 수행하도록 구성되는 컴퓨터 메모리 인터페이스용 장치.
  3. 제 2 항에 있어서,
    상기 이미 배정된 우선 순위는 동적(dynamic)인 컴퓨터 메모리 인터페이스용 장치.
  4. 제 2 항에 있어서,
    상기 요청 제어기는 상기 페치 요청 수단 및 상기 데이타 전송 요청 수단에 의해 사용된 적어도 하나의 어드레스 비트를 토대로 상기 메모리 버스 인터페이스 중 어느 것을 사용할 것인지를 확인하고, 상기 적어도 하나의 어드레스 비트는 어느 메모리 버스 인터페이스가 요청되는지를 나타내는 컴퓨터 메모리 인터페이스용 장치.
  5. 제 2 항에 있어서,
    상기 요청 제어기는 메모리 관리 변환표상에 포함된 제어 비트를 토대로 상기 메모리 버스 인터페이스중 어느 것을 사용할 것인지를 확인하고 상기 제어 비트는 어느 메모리 버스 인터페이스가 요청되는지를 나타내는 컴퓨터 메모리 인터페이스용 장치.
  6. 제 1 항에 있어서,
    상기 제 1 메모리 수단은 랜덤-액세스 메모리 수단인 컴퓨터 메모리 인터페이스용 장치.
  7. 제 1 항에 있어서,
    상기 제 2 메모리 수단은 프로그램 명령 및 판독 전용 데이타를 포함하는 판독 전용 메모리 수단인 컴퓨터 메모리 인터페이스용 장치.
  8. 휴대용 이동 컴퓨터에 있어서,
    a) 프로그램 명령 및 데이터 모두를 기억하도록 구성된 제 1 메모리로서, 기억될 상기 프로그램 명령중 적어도 일부는 명령 데이타를 발생하는 자체-변경 코드를 포함하고, 상기 명령 데이타는 교대로 프로그램 명령으로서 실행가능한 상기 제 1 메모리와;
    b) 프로그램 명령 및 데이타를 기억하도록 구성된 제 2 메모리와;
    c) 각각의 제 1 및 2 인터페이스 버스에 의해 상기 제 1 및 제 2 메모리에 결합된 처리기를 포함하며,
    상기 처리기는, 상기 제 1 및 제 2 메모리로부터 프로그램 명령 페치를 요청하고, 상기 처리기 및 상기 제 1 메모리간의 그리고 상기 처리기 및 상기 제 2 메모리간의 데이타 전송을 요청하고, 특수한 프로그램 명령 페치 또는 데이타 전송이 발생하는 상기 제 1 및 2 메모리 버스 인터페이스중 어느 것을 조정하도록 구성된 기억된 프로그램을 포함하는 휴대용 이동 컴퓨터.
  9. 제 8 항에 있어서,
    상기 처리기는,
    상기 처리기와 상기 제 1 및 제 2 메모리간에, 각각 프로그램 명령 페치 요청 부분 및 데이타 전송 요청 부분으로부터 프로그램 명령 페치 요청 및 데이타 판독/기록 전송 요청을 모니터하고 감독(direct)하기 위한 요청 제어기와;
    상기 요청 제어기에 결합되고 상기 요청 제어기의 이미 배정된 우선 순위를 토대로 하여 제 1 또는 제 2 메모리 버스 인터페이스를 통해 액세스를 수행하도록 구성된 제 1 및 2 버스 제어기를 더 포함하는 휴대용 이동 컴퓨터.
  10. 제 9 항에 있어서,
    상기 이미 배정된 우선 순위는 동적인 휴대용 이동 컴퓨터.
  11. 제 9 항에 있어서,
    상기 요청 제어기는 상기 프로그램 명령 페치 요청 부분 및 상기 데이타 판독/기록 요청 부분에 의해 사용된 어드레스 비트를 토대로 해서 어느 메모리 버스인터페이스를 사용할 것인지를 확인하고, 상기 어드레스 비트는 어느 메모리 버스 인터페이스가 요청되는지를 나타내는 휴대용 이동 컴퓨터.
  12. 제 9 항에 있어서,
    상기 요청 제어기는 메모리 관리 변환표상에 포함된 제어 비트를 토대로 상기 메모리 버스 인터페이스중 어느 것을 사용할 것인지를 확인하고, 상기 제어 비트는 어느 메모리 버스 인터페이스가 요청되는지를 나타내는 휴대용 이동 컴퓨터.
  13. 제 8 항에 있어서,
    상기 제 1 메모리 수단은 랜덤-액서스 메모리인 휴대용 이동 컴퓨터.
  14. 제 8 항에 있어서,
    상기 제 2 메모리 수단은 프로그램 명령 및 판독 전용 데이타를 포함하는 판독 전용 메모리인 휴대용 이동 컴퓨터.
  15. 향상된 하바드 구조를 사용하여 이동 휴대용 컴퓨터 시스템에서의 프로그램 명령 페치 및 데이타 기록/판독 요청을 수행하는 방법으로서,
    a) 프로그램 명령 몇 데이타를 처리기로써 처리하는 단계와,
    b) 제 1 및 제 2 메모리 인터페이스 버스중 어느 것이 특수한 프로그램 명령페치를 액세스하거나 데이타 판독/기록 요청을 만족하도록 사용되는지를 결정하는단계와,
    c) 제 1 및 제 2 외부 메모리 영역으로부터 상기 제 1 및 제 2 메모리 인터페이스 버스중 적어도 하나에서 프로그램 명령을 페치하는 단계로서, 상기 제 1 외부 메모리 영역은 프로그램 명령을 포함하고, 가능한 한 자체 변경 코드와 데이터를 포함하고, 상기 제 2 외부 메모리 영역은 프로그램 명령 및 데이타를 포함하는 상기 프로그램 명령 페치 단계와,
    d) 상기 제 1 및 제 2 외부 메모리 영역중 하나로부터 상기 제 1 및 2 인터페이스 버스중 적어도 하나를 통해 데이타를 액세스하는 단계를 포함하는 휴대용 컴퓨터 시스템에서의 프로그램 명령 페치 및 데이타 기록/판독 요청 수행 방법.
KR1019950024802A 1994-08-10 1995-08-09 컴퓨터 메모리 인터페이스용 장치와, 휴대용 이동 컴퓨터와 그 컴퓨터에서의 프로그램 명령 페치 및 데이타 기록/판독 요청 수행 방법 KR100344132B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/288,420 US5577230A (en) 1994-08-10 1994-08-10 Apparatus and method for computer processing using an enhanced Harvard architecture utilizing dual memory buses and the arbitration for data/instruction fetch
US288,420 1994-08-10

Publications (2)

Publication Number Publication Date
KR960008564A KR960008564A (ko) 1996-03-22
KR100344132B1 true KR100344132B1 (ko) 2002-12-02

Family

ID=23107022

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019950024802A KR100344132B1 (ko) 1994-08-10 1995-08-09 컴퓨터 메모리 인터페이스용 장치와, 휴대용 이동 컴퓨터와 그 컴퓨터에서의 프로그램 명령 페치 및 데이타 기록/판독 요청 수행 방법

Country Status (4)

Country Link
US (1) US5577230A (ko)
EP (1) EP0697663A3 (ko)
JP (1) JP3136257B2 (ko)
KR (1) KR100344132B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100983572B1 (ko) 2006-02-14 2010-09-24 후지쯔 가부시끼가이샤 패치 적용 방법 및 패치 적용 프로그램을 기록한 기록 매체

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5666516A (en) * 1993-12-16 1997-09-09 International Business Machines Corporation Protected programmable memory cartridge having selective access circuitry
US5787265A (en) * 1995-09-28 1998-07-28 Emc Corporation Bus arbitration system having a pair of logic networks to control data transfer between a memory and a pair of buses
US5832257A (en) * 1995-12-29 1998-11-03 Atmel Corporation Digital signal processing method and system employing separate program and data memories to store data
US5794049A (en) * 1996-06-05 1998-08-11 Sun Microsystems, Inc. Computer system and method for executing architecture specific code with reduced run-time memory space requirements
JP3620181B2 (ja) * 1996-12-05 2005-02-16 富士通株式会社 半導体装置及びリードアクセス方法
JPH10320205A (ja) * 1997-05-20 1998-12-04 Fujitsu Ltd 情報処理装置
US6467035B2 (en) * 1997-09-08 2002-10-15 Agere Systems Guardian Corp. System and method for performing table look-ups using a multiple data fetch architecture
US6038630A (en) * 1998-03-24 2000-03-14 International Business Machines Corporation Shared access control device for integrated system with multiple functional units accessing external structures over multiple data buses
US6240492B1 (en) 1998-05-22 2001-05-29 International Business Machines Corporation Memory interface for functional unit of integrated system allowing access to dedicated memory and shared memory, and speculative generation of lookahead fetch requests
JP3623379B2 (ja) * 1998-12-01 2005-02-23 富士通株式会社 マイクロプロセッサ
US6141710A (en) * 1998-12-15 2000-10-31 Daimlerchrysler Corporation Interfacing vehicle data bus to intelligent transportation system (ITS) data bus via a gateway module
KR100570203B1 (ko) * 1998-12-30 2006-08-18 주식회사 하이닉스반도체 게이트전극 형성방법
US6725320B1 (en) 2001-02-08 2004-04-20 International Business Machines Corporation I2C bus switching devices interspersed between I2C devices
FR2821456B1 (fr) * 2001-02-28 2003-06-20 St Microelectronics Sa Microprocesseur a architecture harvard ayant un espace adreassable lineaire
US6832280B2 (en) 2001-08-10 2004-12-14 Freescale Semiconductor, Inc. Data processing system having an adaptive priority controller
GB0122401D0 (en) * 2001-09-17 2001-11-07 Ttp Communications Ltd Interfacing processors with external memory
US7240144B2 (en) * 2004-04-02 2007-07-03 Arm Limited Arbitration of data transfer requests
US7873953B1 (en) * 2006-01-20 2011-01-18 Altera Corporation High-level language code sequence optimization for implementing programmable chip designs
WO2012094298A1 (en) * 2011-01-06 2012-07-12 The Lubrizol Corporation Ultrasonic measurement
US8949551B2 (en) 2011-02-23 2015-02-03 Freescale Semiconductor, Inc. Memory protection unit (MPU) having a shared portion and method of operation
US9116845B2 (en) 2011-02-23 2015-08-25 Freescale Semiconductor, Inc. Remote permissions provisioning for storage in a cache and device therefor
US20120233401A1 (en) * 2011-03-08 2012-09-13 Skymedi Corporation Embedded memory system
US8639895B2 (en) 2011-07-14 2014-01-28 Freescale Semiconductor, Inc. Systems and methods for memory region descriptor attribute override
JP7101052B2 (ja) * 2018-06-08 2022-07-14 ローム株式会社 マイクロプロセッサ

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4855903A (en) * 1984-12-20 1989-08-08 State University Of New York Topologically-distributed-memory multiprocessor computer
JPS6414648A (en) * 1987-07-08 1989-01-18 Mitsubishi Electric Corp Arithmetic processor
DE69130233T2 (de) * 1990-03-15 1999-05-20 Sun Microsystems Inc Verfahren und gerät um ein sperrungscache einzusetzen
US5268995A (en) * 1990-11-21 1993-12-07 Motorola, Inc. Method for executing graphics Z-compare and pixel merge instructions in a data processor
US5255374A (en) * 1992-01-02 1993-10-19 International Business Machines Corporation Bus interface logic for computer system having dual bus architecture
US5276836A (en) * 1991-01-10 1994-01-04 Hitachi, Ltd. Data processing device with common memory connecting mechanism
JP3206006B2 (ja) * 1991-01-25 2001-09-04 株式会社日立製作所 二重化バス制御方法及び装置
US5386537A (en) * 1991-03-28 1995-01-31 Minolta Camera Kabushiki Kaisha System with reduced instruction set processor accessing plural memories at different speeds using bank interleaving
US5301295A (en) * 1991-05-22 1994-04-05 Analog Devices, Inc. Data processor apparatus and method with selective caching of instructions
DE69320508T2 (de) * 1992-03-04 1999-03-04 Motorola Inc Verfahren und Gerät zur Busarbitrierungsdurchführung mit einem Arbiter in einem Datenverarbeitungssystem
US5404462A (en) * 1992-10-16 1995-04-04 Unisys Corporation Dual bus interface transfer system for central processing module

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100983572B1 (ko) 2006-02-14 2010-09-24 후지쯔 가부시끼가이샤 패치 적용 방법 및 패치 적용 프로그램을 기록한 기록 매체

Also Published As

Publication number Publication date
JP3136257B2 (ja) 2001-02-19
KR960008564A (ko) 1996-03-22
EP0697663A2 (en) 1996-02-21
EP0697663A3 (en) 1999-05-06
JPH0863354A (ja) 1996-03-08
US5577230A (en) 1996-11-19

Similar Documents

Publication Publication Date Title
KR100344132B1 (ko) 컴퓨터 메모리 인터페이스용 장치와, 휴대용 이동 컴퓨터와 그 컴퓨터에서의 프로그램 명령 페치 및 데이타 기록/판독 요청 수행 방법
US5642489A (en) Bridge between two buses of a computer system with a direct memory access controller with accessible registers to support power management
US5911149A (en) Apparatus and method for implementing a programmable shared memory with dual bus architecture
US6480929B1 (en) Pseudo-concurrency between a volatile memory and a non-volatile memory on a same data bus
US5640542A (en) On-chip in-circuit-emulator memory mapping and breakpoint register modules
JP2633458B2 (ja) Dmaチヤネル装置及びdmaチヤネルの変換装置
KR100287355B1 (ko) 그래픽/영상을 처리하기 위한 스마트 비디오 메모리 및 그 처리 방법
EP0405318A2 (en) Microprocessor having cash bypass signal terminal
JPS62243058A (ja) マルチプロセツサシステムの割込制御方法
JPH0430053B2 (ko)
JPH0786870B2 (ja) コプロセツサのデータ転送制御方法およびその回路
JPH09185514A (ja) 割込み装置
US5933613A (en) Computer system and inter-bus control circuit
US20040064599A1 (en) Configurable memory controller for advanced high performance bus system
JP2000082049A (ja) マルチプロセッサ装置
JP2618223B2 (ja) シングルチツプマイクロコンピユータ
KR100223096B1 (ko) 내부 메모리 맵 레지스터를 관측하는 방법 및 장치
JP3531368B2 (ja) コンピュータシステム及びバス間制御回路
JP2004318877A (ja) 知的な待ち方法
WO2000017756A1 (fr) Processeur de signaux
JP3077807B2 (ja) マイクロコンピュータシステム
JPH0969072A (ja) メモリマップトi/o制御回路
GB2280765A (en) Multitasking data processing apparatus with different bus widths
JPH1185673A (ja) 共有バスの制御方法とその装置
JP2001297056A (ja) 調停回路及びdmaコントローラ

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

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20140605

Year of fee payment: 13

EXPY Expiration of term