KR100589564B1 - 프로세서/메모리 모듈을 갖는 컴퓨터 시스템 - Google Patents

프로세서/메모리 모듈을 갖는 컴퓨터 시스템 Download PDF

Info

Publication number
KR100589564B1
KR100589564B1 KR1019980012747A KR19980012747A KR100589564B1 KR 100589564 B1 KR100589564 B1 KR 100589564B1 KR 1019980012747 A KR1019980012747 A KR 1019980012747A KR 19980012747 A KR19980012747 A KR 19980012747A KR 100589564 B1 KR100589564 B1 KR 100589564B1
Authority
KR
South Korea
Prior art keywords
memory
processor
dsp
module
access
Prior art date
Application number
KR1019980012747A
Other languages
English (en)
Other versions
KR19980081282A (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 KR19980081282A publication Critical patent/KR19980081282A/ko
Application granted granted Critical
Publication of KR100589564B1 publication Critical patent/KR100589564B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • G06F12/0684Configuration or reconfiguration with feedback, e.g. presence or absence of unit detected by addressing, overflow detection
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/02Disposition of storage elements, e.g. in the form of a matrix array
    • G11C5/04Supports for storage elements, e.g. memory modules; Mounting or fixing of storage elements on such supports

Abstract

컴퓨터 시스템이 디지털 신호 프로세서/메모리(DSP/Memory) 모듈(40)에 결합된 주 프로세서(Main Processing Unit; MPU)(12)를 포함한다. DSP/메모리 모듈(40)은 반도체 메모리(42) 및 하나 이상의 DSP(42)를 포함하는 DSP 회로(44)를 포함한다. DSP/메모리 모듈(40)은 SIMM 또는 DIMM 소켓과 같은 표준 주 메모리 소켓 내에 배치될 수 있고, 종래의 주 메모리로서 사용될 수 있다. 메모리 모듈은 또한 스마트 모드에서 사용될 수 있는데, 여기서 DSP(56)는 MPU(12)에 의한 검색을 위한 데이터에 대한 동작을 수행한다.

Description

프로세서/메모리 모듈을 갖는 컴퓨터 시스템{SYSTEM SIGNALLING SCHEMES FOR PROCESSOR & MEMORY MODULE}
본 발명은 대개 컴퓨터에 관한 것으로, 특히 컴퓨터 메모리 모듈에 관한 것이다.
최근 몇년에 걸쳐, 개인용 컴퓨터의 동작이 멀티미디어 동작에 대해 집중되고 있다. 멀티미디어 컴퓨터는 전형적으로 CD-ROM(컴팩트 디스크 판독 전용 메모리), 또는 DVD(디지털 범용 디스크)와 같은 대체 가능한 매체를 갖는 대용량 기억 장치, FM 합성 또는 파형 테이블 발생 프로세서를 갖는 사운드 카드, 실시간 비디오 용량 및 3차원 그래픽을 포함한다. 스피치 합성 및 음성 인식과 같은 다른 멀티미디어 기능은 컴퓨터의 성능이 증가함에 따라 더욱더 주류가 되고 있다.
그러나, 사운드, 비디오, 팩스, 모뎀, 압축 및 압축 해제와 같은 멀티미디어 기능은 자원 집약적이다. 일부 피쳐(feature)는 대역폭이 제한되어 있는데, 이는 그 피쳐가 시스템 버스의 대역폭을 증가시키지 않고 확장될 수 없다는 것을 의미한다. 전형적인 IBM-호환 PC에서, ISA(Industry Standard Architecture: 산업 표준 아키텍쳐) 버스는 8㎒(16비트)로 실행하는 반면에 PCI(Peripheral Connect Interface: 주변 접속 인터페이스) 버스는 33㎒(32비트)로 실행한다. 다른 피쳐는 프로세서에 제한되어 있다. 멀티태스킹 컴퓨터 시스템에서, 주 프로세서(Main Processing Unit; MPU)는 많은 동작을 담당할 수 있다. 따라서, 다수의 프로세서 명령 사이클을 필요로 하는 멀티미디어 피쳐는 시스템을 저하시키거나 또는 적당히 실행할 수 없다. 또한 다른 멀티미디어 피쳐는 메모리에 제한되어 있다. 이들 피쳐들은 실행하기 위해 많은 양의 메모리를 필요로 한다. 큰 메모리는 시스템 비용을 증가시킨다.
예를 들면, V.34bis와 같은 모뎀의 피쳐는 주로 프로세서 제한적이다. 파형 테이블 합성(wave table synthesis)은 많은 양의 메모리를 필요로 하는 것으로 메모리-제한적이다. MPEG2와 같은 압축 해제 피쳐는 대역폭 제한적일 뿐만 아니라 컴퓨터-제한적이다. 인텔 CPU의 클럭-속도가 증가함에 따라, 이들 중 일부는 호스트 CPU 상에서 실행될 수 있다. 그러나, 이는 사용자 응용기기에 이용 가능한 MIPS(초당 백만개의 명령)가 거의 없어도 호스트 CPU를 로드한다. 증가된 클럭 속도는 또한 전력 소비를 증가시키고 배터리 수명을 감소시킨다.
한가지 흔한 방법은 다중 애드-인(add-in) ISA 또는 로컬 버스 카드를 사용하여 이들 기능들을 데스크탑 컴퓨터에 제공하는 것이다. 이 애드-인 카드는 호스트에 의존하고 다중 플랫폼 상에서 사용될 수 없다. 예를 들면, ISA 카드는 SUN 웍스테이션 또는 매킨토시에서 동작할 수 없다. 노트북 컴퓨터, 팸탑 및 PDA(personal digital assistants: 개인 정보 이동 단말기)는 이러한 ISA 카드를 위한 어떠한 공간도 없다. 그리고, 이들 모두는 고전적인 폰 노이만 병목 현상, 즉 CPU-메모리 대역폭 제한을 겪는다.
프로세서 기술은 행 처리 속도의 개선에 촛점을 맞춰왔다. 예로서, 텍사스주 달라스에 소재한 텍사스 인스투르먼트사에 의한 TMS320군에서 현재의 디지털 신호 프로세서(DSP) 설계의 명령 사이클 시간은, 제1 세대에서 200㎱의 사이클 시간에 비해 5㎱이다. 컴퓨테이션이 온-칩인 한, 이들 디바이스들은 적절한 처리량을 제공한다. 그러나, 스피치, 신호 및 화상 처리에서의 몇가지 응용기기는 메모리 집약적이고, 프로세서가 보다 저속인 오프-칩 메모리로부터 데이터를 가져와서 처리해야 할 때 행 처리 속도에서의 잇점은 없어진다. 프로세서의 사이클 시간을 감소시키고 메모리 장치의 밀도를 증가시키는 것의 조합은 컴퓨터 시스템 설계에 있어 중요한 과제인 CPU-대-메모리 대역폭을 더 악화시키는 결과를 초래한다.
컴퓨터가 데스크탑 크기에서 랩탑, 노트북 및 팸탑 크기로 발전함에 따라, 폼 팩터(foam factor) 및 전력 소비가 중요해지고 있다. 랩탑은, 사용자가 보다 많은 기능을 요구함에 따라 데스크탑의 기능을 가질 것으로 예상된다.
다중처리는, 단일 프로세서 시스템의 사이클 시간을 감소시키는 것이 한계에 달함에 따라 시스템의 처리량을 증가시키기 위한 대안으로서 매우 유망해지고 있다. 그러나, 다중처리는 주로 "프로세서-구동" 방법 및 시스템 설계, 통신 프로토콜의 개발 및 소프트웨어 지원 루틴 설계에 있어서의 어려움 때문에 아직 확산되지 못하고 있다. 점점 더 응용기기에 대한 상세한 이해를 필요로 하기 때문에 응용기기 파티셔닝(partitioning)은 주요한 문제이다. 소프트웨어 개발 방법 및 파티셔닝 툴은 여전히 초기 단계에 있다. 또한, 둘 이상의 프로세서를 접속하는 어떠한 표준 방법도 없다.
따라서, 멀티미디어 및 다른 자원 집약적 피쳐를 위한 적응적이고, 호환 가능한 처리를 제공하기 위한 방법 및 장치에 대한 필요성이 부각되고 있다.
본 발명의 한 실시예에 따르면, 본 발명은 반도체 메모리, 및 집적 모듈 상의 상기 반도체 메모리에 결합된 하나 이상의 프로세서를 구비하는 메모리 모듈을 제공한다. 상기 집적 모듈 상의 회로는 시스템 처리 회로와 프로세서 간의 통신을 제공하여, 그 결과 상기 시스템 처리 회로는 주 메모리로서 반도체 메모리를 액세스할 수 있고, 상기 시스템 처리 회로에 의한 액세스를 위하여 데이터를 변환하고, 상기 변환된 데이터를 상기 반도체 메모리에 저장하도록 프로세서에게 명령할 수 있다.
본 발명은 종래 기술에 비해 큰 장점을 제공한다. 향상된 기능이 가능하도록 디지털 신호 프로세서를 컴퓨터 시스템에 부가하는 것은 MPU(주 처리 유닛)의 메모리를 확장하는 것만큼이나 용이하다. 메모리 모듈은 SIMM(단일 인-라인 메모리 모듈) 또는 DIMM(이중 인-라인 메모리 모듈) 폼 팩터와 같이, IEEE, JEDEC 등과 같은 협의체에 의해 표준화된 유형의 폼 팩터를 사용할 수 있다.
다른 응용은 국부적인 실행을 위하여 MPU에 의해 메모리 모듈에 다운로드될 수 있다. 따라서, 메모리 모듈은 다중 기능성, 즉 MPU의 소프트웨어 제어 하에 다운로드 가능하며, 다중적인 기능을 지원한다.
DSP/메모리 모듈은 임의의 소정의 시간 및 기술로 MPU와 코프로세서 간의 가능한 가장 높은 대역폭을 제공한다. DSP/메모리 모듈은 PC(개인용 컴퓨터), PDA, 워크스테이션 및 다른 컴퓨터 시스템과 함께 사용 가능한 버스-독립, 및 호스트-독립형이다.
DSP/메모리 모듈은 많은 멀티미디어 기능을 통해 시스템 메모리를 공유함으로써 시스템 비용을 감소시킨다.
모듈은 컴퓨터 시스템의 처리 능력을 용이하게 확장시키기 위한 프레임워크(framework)를 제공하는데, 기존의 단일 프로세서 시스템은 메모리 모듈을 간단히 부가함으로써 확장 가능한 다중처리 시스템으로 변형될 수 있다.
사용자는 새로운, 가치가 부가되는 기능을 얻고 이를 제공하기 위해 그 제품 플랫포옴을 바꿀 필요는 없다. DSP/메모리 모듈 및 소프트웨어의 부가로 사용자는 그 컴퓨터의 성능을 향상시킬 수 있다.
본 발명의 다른 실시예에 따르면, 인터럽트 요청, IREQ, 및 WAIT 신호로 메모리 모듈을 구현하는 것이 본 발명에서 상세히 설명된다. 이들 신호들(그 타이밍 및 호스트 메모리 제어기에 관련된 것을 포함함)을 구현하는 방법을 설명하는 다른 실시예에 따라 6개의 옵션이 제시된다.
지금부터 본 발명의 보다 완벽한 이해 및 그 이점을 위하여, 첨부한 도면과 결합하여 작성된 다음의 설명을 참조한다.
본 발명은 도면중 도 1 내지 도 12에 관련하여 가장 잘 이해되며, 상기 도면의 유사한 소자에는 유사한 번호가 사용된다.
도 1은 종래의 컴퓨터 시스템(10)을 도시한다. MPU(12)는 하나 이상의 경로를 통해 다른 전자 장치와 통신한다. 도 1에서, MPU(12)는 메모리 관리 유닛(MMU)(14), PCI 브릿지(16), AT 인터페이스 유닛(18) 및 PCMCIA(Personal Computer Memory Card International Association: 개인용 컴퓨터 메모리 카드 국제 협회) 브릿지(20)에 결합된다. MMU(14)는 전형적으로 벤더에 특정한 버스인 메모리 버스(24)를 거쳐 MPU(12)를 주 메모리(22)에 결합시킨다. 주 메모리(22)는 전형적으로 표준 폼 팩터로 패키징된 복수의 메모리 모듈(26)로 형성된다. 가장 흔히 사용되는 폼 팩터는, DIMM 모듈이 인기를 얻고 있지만, 현재는 SIMM 모듈이다.
PCI 브릿지(16)는 MPU(12)를 PCI 로컬 버스(28)에 결합시킨다. PCI 로컬 버스는 하나 이상의 주변 카드(30)를 위한 슬롯을 제공한다. PCI 버스가 AT 버스보다 고속이기 때문에, 일반적으로 비디오/그래픽 카드와 같은 보다 고속인 주변 장치에 사용된다.
AT 인터페이스 유닛(18)은 MPU(12)를 AT 버스(32)(또한 ISA-산업 표준 아키텍쳐- 버스로서 공지됨)와 결합시킨다. AT 버스(32)는 하나 이상의 주변 카드(34)를 수용할 수 있다. PCMCIA 브릿지(20)는 AT 인터페이스 유닛에 결합되고 노트북 컴퓨터에 공통으로 사용되는 외부적으로 대체 가능한 주변기기(38)(또한 "PC 카드"라는 이름으로 공지되어 있음)를 지원하는 PCMCIA 버스(36)를 제공한다.
하나 이상의 프로세서를 갖는 카드가 ISA 버스(32), 또는 가장 최근에는 PCI 버스(28)를 거쳐 기존의 PC 플랫포옴에 부가될 수 있다. ISA버스(32)는 수년 전에 개발되었고 많이 사용되는 주변 카드들이 이 표준을 따른다. 그러나, MPU와 ISA 카드 상의 프로세서 간의 대역폭은 초당 8㎒*16비트로 제한되어 있다. 오늘날 이 대역폭의 제한으로 인해 실행할 수 없는 몇가지 사운드 응용기기가 있다. 나중에, PCI 버스는 표준 버스로서 제안되는데, 그 대역폭은 초당 33㎒*32비트로 제한되어 있다. 어느 쪽의 경우에도, 그 기술은 버스 기술보다 급속히 발전되고 있다.
버스 트래픽을 어느 정도 감소시키기 위해, MMX 기술이 현재 이용 가능하다. MMX 기술이 MPU로 하여금 확장된 명령 세트를 통해 일부 멀티미디어 기능을 수행하게 하지만, 이는 큰 단점을 갖는다. 데이터는 처리를 위하여 주 메모리에서 MPU(12)로 이동되어야 한다. 이는 중대한 버스 트래픽을 초래하며, MPU(12)를 로드하고 점점 더 빠른 프로세서 속도를 요구한다. 예를 들면, 초당 30 프레임의 속도로 실시간의 MPEG2 비디오 및 오디오 디코딩은 225㎒ 펜티엄 프로세서를 필요로 하는 것으로 추정되고 있다. MMX 명령을 제공하기 위해, MPU(12)는 부동 소수점 모드와 고정 소수점 모드 간에 스위치해야 한다. 모드들 간의 스위칭 시 중대한 오버헤드가 존재하고, 스위치는 부동 소수점 응용(스프레드시트와 같은)과 고정 소수점 응용 모두가 사용되고 있는 멀티태스킹 시스템에서 종종 발생할 수 있다.
도 2는 "바사바(Basava)" 기술로서 불리우는 개념을 사용하여, 도 1에 도시되어 있는 아키텍쳐와 관련되는 많은 문제들에 대한 솔루션을 제공하는 DSP/메모리 모듈을 도시한다. DSP/메모리 모듈(40)은 기판(46) 상에 배치되어 있는 하나 이상의 메모리 회로(42) 및 DSP 회로(44)를 포함한다. 복수의 콘택트(48)는 기판(46) 상에 형성되어 MPU(12)를 내장하는 시스템 보드에 DSP/메모리 모듈(40)을 전기적으로 접속시킨다. 바람직한 실시예에서, DSP/메모리 모듈(40)은 SIMM 슬롯 또는 DIMM 슬롯과 같은 표준 메모리 슬롯으로 삽입된다.
동작 시에, DSP/메모리 모듈(40)은 메모리 버스(24)에 접속된 슬롯으로 컴퓨터의 시스템 보드 상에 놓인다. DSP/메모리 모듈(40)의 DSP 기능은 초기에 MPU(12)에 대해 트랜스패런트(transparent)하며, DSP/메모리 모듈(40)은, DSP 피쳐가 인에이블링될 때까지 표준 메모리 모듈(26)로서 동작한다. 일단 인에이블링되면(이하에 보다 상세히 설명됨), MPU(12)는 복수의 제어 레지스터들을 통해 DSP 회로(44)를 제어하고, 일부 또는 모든 메모리 회로(42)를 사용하여 DSP 회로(44)로 및 그로부터 데이터를 통과시킬 수 있다.
디지털 신호 처리, 스피치, 및 화상 처리의 많은 응용이 구조화되고 그들이 파티셔닝되도록 하고 병렬로 실행된다. 적절한 온-칩 메모리에 의하면, 몇가지 자체로 완비된 태스크는 병렬로 실행될 수 있다. 전형적으로, 매우 큰 세트의 데이터에 응용되는 작은 루틴 또는 연산이 있다. 예를 들면, 스피치 또는 화상 인식에서, 비공지된 입력 벡터는 저장된 몇가지 기준 벡터에 비교된다. 전형적으로, 유클리드 거리(Euclidean distance)는 비공지된 벡터와 공지된 기준 벡터 간의 유사성 측정으로서 사용된다. 이 계산은 메모리에서 비공지된 입력 벡터가 유지되어 있는 MPU(12)로 기준 벡터를 페치하며, 유클리드 거리 계산을 수행하고, 계산된 결과를 역으로 메모리에 기록하는 것을 포함한다. 다수의 기준 벡터들을 MPU(12)로 이동시키는 것은 버스 상에서 데이터의 트래픽을 증가시킨다. 그러나, DSP/메모리 모듈(40)을 사용하여, 사전에 DSP/메모리 모듈(40) 상으로 로드된 기준 벡터를 저장하며, 국부적으로 유클리드 계산을 수행하고, 국부적으로 결과를 저장하는 메모리로 입력 벡터가 이동될 수 있다. 이는 몇가지 이점이 있다. 우선, 버스 상의 데이터 트래픽은, MPU(12)가 비교된 결과만을 판독해도 되기 때문에 감소된다. 두번째로, MPU는 다른 태스크를 자유롭게 수행할 수 있는 반면에 DSP/메모리 모듈(40)은 사이클 집중 유클리드 연산을 수행한다. 세번째로, 감소된 버스 트래픽으로 인해, 전력 소비가 감소되어 휴대용 시스템 사용자를 위한 중요한 특징인 배터리 수명이 증가된다.
DRAM의 밀도가 증가함에 따라, 전형적으로 Mb의 메모리를 필요로 하는 음성 다이얼링 응용과 같은 메모리 집약적 응용이 DSP/메모리 모듈(40) 상에서 용이하게 지원될 수 있다.
도 3은 MPU(12), 메모리 회로(42)와 DSP 회로(44) 간에 상호작용을 도시한 도면이다. 컴퓨터 시스템의 주 메모리는 일반적으로 "뱅크"로 분할되며, 각 뱅크(50)는 하나 이상의 메모리 모듈을 구비한다. 도 3의 컴퓨터 시스템에서, BANK0, BANK1, BANK2 및 BANK3인 4개의 뱅크가 도시되어 있다. BANK3은 DSP/메모리 모듈(40)을 포함하는데(임의의 뱅크가 모듈을 포함할 수 있더라도), 또 다른 예에서, 모든 뱅크(50)는 DSP/메모리 모듈(40)을 포함할 수 있다.
각 뱅크(50)는, MPU(12)가 메모리(MMU(14)를 거쳐)를 어드레스하는 연관된 어드레스 공간을 갖는다. 펜티엄형 프로세서인 경우, 어드레스 범위는 0에서 4Gbytes까지이다. 전형적으로, 실제 메모리 어드레스는 훨씬 작은 범위, 예를 들어 0과 64Mbytes 사이에 있다. BANK3과 연관된 어드레스 공간 내에서, 임의의 범위의 어드레스는 DSP 회로(44)와 연관되며, DSP 회로가 인에이블링될 때 사용되는 제어 레지스터(52)에 할당된다. 이들 제어 레지스터들은 이하에 더 상세히 설명된다. 더우기, 메모리의 일부는 공유 메모리(54), 즉 MPU(12) 및 DSP(56)(다중 DSP는 또한 단일 모듈 상에서 사용될 수 있음) 모두와 함께 사용하기 위해 지정될 수 있다. DSP(56)는 전형적으로 디지털 신호 프로세서이나, 대체적으로 임의의 형태의 프로그램 가능한 프로세서일 수 있다. 주 메모리 이외에, DSP 회로(44)는 또한 정보의 일시 기억을 위한 로컬 메모리(58)를 갖는다.
DSP 회로(44)가 인에이블링되지 않을 때("표준 모드"), DSP/메모리 모듈(40)은 표준 메모리 모듈로서 동작한다. 도 3의 도면에서, MPU(12)는 임의의 다른 메모리 뱅크(50)인 것처럼, BANK3의 전체 메모리 어드레스 공간에 유일한 액세스를 갖는다. DSP/메모리 모듈(40)이 그 DSP 회로(44)를 인에이블링 시킬 때("스마트 모드(smart mode)"), MPU(12)는 제어 레지스터(52)에 기록하여 DSP 기능을 제어하고 공유 메모리를 거쳐 데이터를 DSP 회로(44)로 및 그로부터 전송할 수 있다.
제3 모드인 구성 모드에서, MPU(12)는 DSP/메모리 모듈(40)의 메모리 공간에 있는 인덱스 및 데이터 레지스터를 거쳐, DSP/메모리 모듈(40) 상에 존재하는 제어 레지스터(52) 및 로컬 메모리(54)를 액세스할 수 있다. 파워업 시, 이들 제어 레지스터(52)는 DSP/메모리 모듈(40)의 어드레스 공간의 기저에 배치된다. 구성 모드의 목적은 두가지이다. 첫째, 구성 모드는 모듈 정보 구조(Module Information Structure: MIS)라 불리우는, DSP/메모리 모듈(40)에 관한 특수한 정보를 판독하도록 MPU(12)를 인에이블링 시킨다. MIS는 DSP/메모리 모듈(40)에 이용 가능한 메모리의 크기, 로컬 메모리의 크기, 및 이용 가능한 프로세서의 형태에 관한 정보를 포함한다. MPU(12)는 이 MIS를 액세스하고 차후 참조 및 동작을 위해 이 정보를 그 레지스터에 저장한다. MIS는 전형적으로 ROM과 같은 저속 메모리에 저장되고, MPU(12)는, 데이터 레지스터로부터 판독하기 전에 DSPSR 레지스터의 상태 비트를 폴링(polling)해야 한다. 특수한 비트가 이하에 더 설명된다. 두번째로, 구성 모드는 제어 레지스터(52)와 공유 메모리(54)의 기저 어드레스를 모듈의 경계 내에 있는 소정의 어드레스 위치에 재배치하는데 사용된다. 디폴트 기저 어드레스는 0, 즉 제어 레지스터가 뱅크(50)의 시작 어드레스에 배치된다는 것을 알아야 한다.
다음은 모드들 간에 스위치하기 위한 바람직한 프로시저를 제공한다. 표준 모드에서 구성 모드로 스위치하기 위해, MPU(12)는 시그너쳐(signature) 패턴을 그 어드레스 공간에 배치된 시그너쳐 레지스터(SIGR)에 연속해서 n번 기록한다. 이 시그너쳐 패턴은, 임의의 다른 액세스를 행하지 않고 여러번 기록된다. 예를 들면, 시그너쳐 패턴 "A320"은 SIGR 레지스터에 연속해서 4번 기록되어 구성 모드로 진입할 수 있다.
구성 모드에서 표준 모드로 스위치하기 위해, MPU(12)는 재배치될 제어 레지스터의 기저 어드레스를 재배치하고자 하는 "재배치 어드레스"를 DSPLOC 레지스터에 기록한다. 제어 레지스터를 재배치하고 싶지 않으면, "0"이 DSPLOC 레지스터에 기록된다. 재배치 어드레스를 기록한 후, MPU(12)는 시그너쳐 패턴을 SIGR/인덱스 레지스터에 기록한다.
표준 모드에서 스마트 모드로 스위치하기 위해, MPU(12)는 시그너쳐 패턴을 그 어드레스 공간에 배치된 시그너쳐 레지스터(SIGR)에 연속해서 (n+1)번 기록한다. 이 시그너쳐 패턴은, 임의의 다른 액세스를 행하지 않고 여러번 기록된다. 예를 들면, 시그너쳐 패턴 "A320"은 SIGR 레지스터에 연속해서 5번 기록된다.
컴퓨터가 임의의 이유로 리셋되거나 또는 차단되면, OS의 드라이버는, 컴퓨터가 차단하기 전에 모듈을 표준 모드로 역스위치할 것이다. 대체적으로, 파워업 시, 부트 시퀀스는 항상 모듈을 강제로 표준 모드에 있다.
제어 레지스터
모듈의 동작 모드의 제어가 도 9 내지 도 11과 결합하여 도시된 모듈 제어기에 정의된 시그너쳐, 제어, 상태, 및 통신 레지스터를 거쳐 실현된다. 이들 중 일부는 MPU(12)에 의해서만, 그리고 일부는 DSP(56)에 의해서만, 및 일부는 MPU(12)와 DSP(56) 모두에 의해서 액세스할 수 있다. 이들 레지스터들 중 일부는 MPU(12)의 메모리 공간 및 DSP(56)의 I/O 공간에 맵핑된다. MPU(12) 및 DSP 모두의 경우, 이들 레지스터들 중 일부는 "보존(reserved)"으로 표시될 수 있다는 것을 알아야 한다. 표준 모드에서, 시그너쳐 레지스터(SIGR)만이 MPU(12)에 액세스할 수 있다. 다른 레지스터는, DSP/메모리 모듈(40)이 연산의 구성 또는 스마트 모드에 있을 때만 존재한다.
초기에, 이들 레지스터들은 관련된 뱅크(50)의 첫번째 32바이트로 맵핑된다.
SIGR 레지스터
시그너쳐 레지스터(SIGR)는 표준 모드에서만 정의된다. DSP/메모리 모듈(40)은 유효한 시그너쳐 패턴인 경우 모든 MPU가 이 위치에 기록하는 것을 모니터한다(이것은 모듈에 전형적으로 이용 가능한 표준 메모리에 기록함). 모듈이 구성 모드에서 동작할 때, 이 레지스터는 인덱스 레지스터로서 재정의된다. 모듈은 시그너쳐 패턴(예를 들어, "A320")의 기록을 모니터하고, DSPLOC 레지스터에의 기록 후에 이것이 발생하면, 이 때 모듈은 표준 모드로 역스위치된다. 스마트 모드 동안, 이 레지스터는 인덱스 레지스터로서 재정의된다.
인덱스 레지스터
구성 및 스마트 모드에서 이용 가능한 인덱스 레지스터는 DSPCR 등과 같은 다른 레지스터로의 액세스를 인에이블링 한다. MPU(12)는 이 레지스터로의 액세스를 원하는 제어 레지스터의 어드레스를 기록해야 한다.
데이터 레지스터
데이터 레지스터는 구성 및 스마트 모드에서 이용 가능한 판독/기록 레지스터이다. MPU(12)는 모듈에 의해, 어드레스가 사전에 인덱스 레지스터에 설정된 적절한 제어 레지스터(52)로 전송되는 이 레지스터에 데이터를 기록한다.
고속-페이지 모드에서 긴밀한 메모리-액세스 타이밍의 부합이 충족되기 어렵기 때문에, 인덱스 및 데이터 레지스터는 하드웨어 회로 구현이 용이하도록 정의되어 있다. 이상적으로 모든 제어 레지스터(52)는 호스트 MPU(12)에 의해 직접 액세스할 수 있다.
DSPLOC 레지스터
DSPLOC 레지스터는 MPU(12)가 제어 레지스터(52)의 기저를 MPU의 어드레스 공간의 다른 어드레스로, 그러나 여전히 모듈의 어드레스 한계의 경계 내에서 재배치하는 것은 허용하는 16비트 R/W 레지스터이다.
DSP 제어 레지스터(DSPCR)
도 4a에 도시된 DSPCR은 DSP 동작, MPU의 인터럽트, 메모리 버스 중재, 표준-스마트 모드 스위치, 및 레벨 인터럽트 클리어를 제어하는데 사용되는 16비트 R/W 레지스터이다. 개별 비트의 정의는 다음과 같다.
DSP 특수한 비트로, 일부 보호가 포함되더라도, 연산은 완전히 자동화되지 않는다는 것을 알아야 한다. 따라서, 사용자는, DSP 연산을 고려하여 DSPCR을 프로그램해야 한다. DSPCR 비트가 다음의 표 4에서 기술된다.
DSP 상태 레지스터
도 4b에 도시된 DSPSR은 판독-전용, 16비트 레지스터이다. DSP 연산, MPU(12)의 모듈 인터럽트, 및 메모리/DSP 버스 중재를 모니터하는데 사용된다. 개별 비트의 정의는 표 5와 같다.
DSP 데이터 전송 레지스터
DSPTXD는 호스트 MPU(12)에 통신하기 위해 DSP에 의해 사용되는 16비트 레지스터이다. MPU(12)는 이 레지스터로의 판독 액세스를 갖고 이 레지스터에의 임의의 MPU 기록은 무시된다. DSP는 이 레지스터로의 기록 액세스만을 갖고 이 레지스터로부터 판독된 임의의 DSP는 무효 데이터가 판독되게 한다. 이 레지스터에의 DSP 기록이 인에이블링되면 TXFULL 인터럽트를 MPU(12)에 발생시킨다. 유사하게, 이 레지스터로부터 판독되는 MPU(12)가 인에이블링되면 TXEMPTY 인터럽트를 DSP에 발생시킨다.
DSP 데이터 수신 레지스터
DSPRXD는 DSP에 통신하기 위해 MPU(12)에 의해 사용되는 16비트 레지스터이다. MPU(12)는 이 레지스터로의 기록 액세스만을 갖고 이 레지스터로부터 판독되는 임의의 MPU(12)는 무효 데이터가 판독되게 한다. DSP는 이 레지스터로의 판독 액세스 만을 갖고 이 레지스터로의 임의의 DSP 기록은 무시된다. 이 레지스터로부터 판독되는 DSP가 인에이블링되면 RXEMPTY 인터럽트를 MPU(12)에 발생시킨다. 유사하게 이 레지스터에의 MPU(12) 기록이 인에이블링되면 RXFULL 인터럽트를 DSP에 발생시킨다.
MPU(12) 상태 레지스터
도 4c에 도시된 PCSR은, DSP/메모리 모듈(40)이 스마트 모드에 있을 때 I/O 어드레스 0052h에 배치된 DSP의 16비트 판독-전용 레지스터이다. 이는 호스트 통신 레지스터의 상태를 결정하기 위해 DSP 공간에 의해 사용된다. 그 비트는 표 6에 정의되어 있다.
비트 I/O 레지스터(보존됨)
BIOR은, DSP/메모리 모듈(40)이 스마트 모드에 있을 때, I/O 어드레스 0053h에 배치된 DSP의 16비트 판독/기록 || 판독-전용 레지스터이다. BIOR은, DSP/메모리 모듈(40)이 라인-인/아웃, 마이크로폰 입력, 전화선 또는 셀룰러 접속과 같이, 외부 신호를 통해 정보를 수신할 수 있도록 아날로그 프론트 엔드(도 12와 결합하여 설명됨)로부터 정보를 수신한다.
시스템 구성 레지스터
도 4d에 도시된 SYSCFG 레지스터는, DSP/메모리 모듈(40)이 스마트 모드에 있을 때 I/O 어드레스 0054h에 배치된 DSP의 16비트 판독/기록 레지스터이다. 이는 CLKMD1=0, 버스 중재, 전역 데이터 페이징, 외부 메모리 구성 및 페이징일 때 DSP로의 클럭 입력의 횟수를 제어하기 위해 DSP에 의해 사용된다.
탐색 프로토콜(HUNTING PROTOCOL)
적절한 드라이버가, DSP/메모리 모듈(40)이 플러그인되기 전에 설치되면, 시스템 전력이 순환될 때, 드라이버가 호출되고, 이는 DSP/메모리 모듈(40)이 배치된 곳을 식별하기 위해 전체-공간을 자동으로 검색한다. DSP/메모리 모듈(40)이 배치되어 있는 곳을 확인하기 위한 프로토콜 및 프로시저를 탐색 프로토콜이라 한다. 드라이버의 제어 하에, MPU(12)는 도 5에 도시된 바와 같이 DSP/메모리 모듈(40)을 배치한다.
블록 60 및 62에서, MPU(12)는 시그너쳐 또는 고정 패턴, 예를 들어 A320을 메모리 공간의 한단에서 시작하여 위쪽으로(또는 아래쪽으로) 동작하는 각 메모리 위치에 n번 기록한다. n은 전형적으로 4이나, 임의의 다른 수일 수 있으며, 그러나 하드웨어에 의해 결정된 드라이버에 지정되어야 한다. 이 고정 패턴은 시그너쳐 패턴이라 불리운다.
블록 64에서, MPU(12)는 고정 패턴을 기록한 메모리 위치를 판독한다. 판정 블록 66에서, 판독된 값이 기록되어 있던 값과 동일하면, 이 때 MPU(12)는 어드레스 카운터를 증분시키고 다음의 연속 메모리 위치(블록 68 및 70)에 대해 상기 프로세스를 반복하기 위해 진행한다.
판독된 값이 판정 블록 66에서만 기록된 값과 동일하지 않고, 판정 블록 72에서 선정된 응답값과 동일하면(예를 들어 시그너쳐의 보수), 드라이버는 DSP/메모리 모듈(40)을 배치하였다고 가정한다. 이 어드레스값은 시그너쳐 레지스터(SIGR)의 어드레스이다. 드라이버는 차후 참조의 경우 이 어드레스를 기억한다. 판정 블록 72에서, 판독된 데이터가 응답값과 동일하지 않으면, 이 때 에러가 발생하였다.
메모리 맵핑
구성 모드
도 6은, DSP/메모리 모듈(40)이 구성 모드에 있을 때 MPU(12)에 의해 도시된 바와 같은 메모리 맵을 도시한다. 상술된 바와 같이, MPU(12)가 DSP/메모리 모듈(40) 상의 DSP 회로(44)를 사용하도록 결정할 때, 이는 시그너쳐 패턴을 SIGR 레지스터에 직접 n번 기록한다. 이는 모듈을 구성 모드로 스위치한다. 모듈 상의 DSP(56)는 여전히 전력이 공급되지 않는다. MPU(12)는 SIGR 레지스터에 후속하는 몇몇 어드레스를 액세스하여 모듈에 관한 정보를 얻을 수 있다. 이는 모듈 정보 구조(MIS) 메모리(72)에 장기간 저장되어 있는 수바이트인 헤더의 형식일 수 있다. 이 헤더는 DSP/메모리 모듈(40) 상의 DSP 형태, DSP/메모리 모듈(40)이 32비트 또는 16비트 프로세서인지의 여부, DSP와 연관된 로컬 메모리(58)의 크기, DSP/메모리 모듈(40) 상의 메모리 크기, 및 다른 관련된 정보를 지정할 것이다. 드라이버는 차후 참조인 경우 이 구성 헤더를 절감한다(그리고 일부 이유로 전력이 PC에 재활용되면, 이때 DSP/메모리 모듈(40)은 표준 모드에서 항상 부트-업(boot-up)해야 함).
현재 이용 가능한 적절한 제어 레지스터(52)를 사용하면, SIGR 레지스터에 후속하여, MPU(12)는 프로그램 및 데이터를 DSP의 로컬 메모리(58)로 다운로드한다. (이는 DSP(56)와 연관된 로컬 메모리가 파워업되지만, DSP(56)는 여전히 오프이어야 한다는 것을 의미함.)
구성 모드에서 이용 가능한 DSPLOC 레지스터는 MPU(12)가 SIGR과 다른 제어 레지스터를 DSP/메모리 모듈(40) 상의 또 다른 위치에 재배치하게 한다. MPU(12)가 제어 레지스터(52)를 새로운 어드레스에 재배치하지 않도록 결정하더라도, 이는 0을 DSPLOC 레지스터에 여전히 기록해야 한다. 현재 MPU(12)는 모듈을 구성 모드에서 표준 모드로 역스위치하기 위하여 시그너쳐 패턴, 예를 들어 A320을 SIGR 레지스터에 기록한다.
스마트 모드
MPU(12)가 DSP/메모리 모듈(40) 상의 DSP(56)의 전력을 인보킹(invoking)할 때, 이는 모듈 상에 이용 가능한 메모리가 있는지의 여부를 먼저 판정할 것이다. 현재 일부 응용 프로그램은 DSP/메모리 모듈(40)의 어드레스 공간에 메모리를 할당했을 수도 있다. 그러므로, MPU(12)는 임의의 현재 응용 메모리를 새로운 위치로 이동시킬 것이다. 대체적으로, MPU(12)는 제어 레지스터를 DSP/메모리 모듈(40) 상의 또 다른 어드레스로 재배치하도록 결정할 수 있다. 제어 레지스터(52)의 어드레스를 재배치하기 위해, MPU(12)는 상술된 DSP/메모리 모듈(40)의 구성 모드로 진입한다. 구성 모드에서 DSPLOC 레지스터는 MPU(12)가 SIGR 레지스터와 다른 공유 레지스터를 DSP/메모리 모듈(40) 상의 또 다른 위치에 재배치하게 하며, 이러한 신축성이 요구되는데, 그 이유는 MPU(12)가 SIGR 레지스터 상에 오버랩하는 메모리가 할당되는 DSP/메모리 모듈(40) 상의 응용을 사전에 할당했을 수도 있기 때문이다. 그 다음 MPU(12)는 구성 모드에서 표준 모드로 및 표준 모드에서 스마트 모드로 스위치할 것이다. 스마트 모드에서, MPU(12)는 필요한 디지털 신호 처리 프로그램 및 데이터를 DSP(56)의 로컬 메모리(58)로 다운로드할 것이다. 제어 레지스터에 기록함으로써, MPU(12)는 DSP(56)를 시작시킬 수 있다.
기저 레지스터에 기록하는 것 이외에, MPU(12)는 DSP와 연관된 SRAM 상의 공유 메모리 크기 레지스터에 기록하는데, 이는 호스트 MPU(12)와 DSP(56) 간의 공유 메모리량을 지정한다. 공유 메모리는 DSP(56)뿐만 아니라 MPU(12) 모두에 의해 액세스할 수 있다.
공유 메모리가 MPU에 의해 0으로서 지정되었다면, 이 때 DSP/메모리 모듈(40)은 스마트-로컬 모드에 있다고 말한다. 이 경우에, 제어 레지스터(52)만이 MPU에 의해 액세스할 수 있다. 스마트 모드에서 MPU(12)에 의해 도시된 메모리 맵의 도면은 도 7에 도시되어 있다. 이 모드에서, MPU는 제어 레지스터(52)로부터 판독하고 기록할 수 있다. 제어 레지스터(52)를 통해, MPU는 LM_RW_ADDR, LM_RW_DATA 및 LM_ADR_OFFSET를 통하여 MIS(72) 및 로컬 메모리(58)(DSP_PM은 DSP의 로컬 프로그램 메모리이고 DSP_DM은 DSP의 로컬 데이터 메모리임)를 액세스하고, MPU(12)는 제어 레지스터 DSPTXD 및 DSPRXD를 통하여 DSP(56)의 I/O 레지스터(74)를 액세스할 수 있다.
그러나, 공유 메모리가 MPU에 의해 0이 아닌 값으로서 지정되었다면, 이 때 모드는 스마트-공유 모드라 불리운다. 이 모드에서 지정된 메모리량은 MPU와 DSP 간의 공유 메모리(54)로서 이용 가능하다. 도 8은 스마트-공유 모드에서 MPU(12)에 의해 도시된 메모리 맵을 도시한다.
스마트-공유 모드에서, MPU(12)는 세마포어 비트를 먼저 판독하며, 공유 메모리가 DSP에 의해 현재 액세스되고 있는가를 결정하기 위해 상기를 시험하고, 사용되고 있지 않으면, MPU(12)는 공유 메모리를 액세스하기 전에 세마포어 비트를 설정할 것이다(그리고 일단 액세스가 완료되면 그 비트를 "0"으로 복원시킴). 그러나, 세마포어 비트가 이미 설정되어 있으면, MPU(12)는 "1"을 공유 메모리 요청 비트(DSPCR 레지스터의 매뉴얼 홀드 비트(Manual Hold bit)라 불리움)에 기록하여, DSP(56)가 공유 메모리(54)를 현재 액세스한다는 것을 가리킬 수 있다. 이 기록은 DSP/메모리 모듈(40) 상의 하드웨어 모듈에 의해 검출된다. 모듈 제어기는 현재 DSP(12)를 홀드로 놓기 위해 적절한 동작을 행할 것이다, 즉 모듈 제어기는 공유 메모리(54)로의 DSP 액세스를 멈추고 공유 메모리(54)의 액세스를 MPU(12)에 복원시킨다. 따라서, 공유 메모리 요청 비트는, DSP(56)에 의해 사용되고 있더라도 MPU가 공유 메모리로의 액세스를 요구하게 한다.
대체적으로, 이 프로토콜로 공유 메모리로의 액세스를 촉진시키는 것은 피할 수 있다. 그러나, 이 프로토콜의 회피는 MPU 공유 메모리 요청에 응답하는데 충분하며 신속하게 스위치할 수 있는 하드웨어 또는 듀얼 포트 DRAM의 사용을 필요로 한다.
모듈 구현
도 9 내지 도 12는 DSP/메모리 모듈(40) 및 DSP 회로(44)에 대한 다른 실시예를 도시한다. 도 9에서, MMU(14)(도 1 참조)로부터의 데이터 및 어드레스 버스(75)가 모듈 제어기(76)에 의해 수신되는 실시예가 도시되어 있다. 메모리 및 어드레스 버스(75)는 또한 DSP/메모리 모듈(40) 상의 종래 메모리를 형성하는 하나 이상의 DRAM(동적 랜덤 액세스 메모리)(78)에 접속된다. 또한, 하나 이상의 DPRAM(듀얼 포트된 랜덤 액세스 메모리)(80)은 모듈 제어기에 결합된다. DPRAM은 모듈 제어기(76)에 의해 공유 메모리로서 지정된 어드레스에 맵핑된다. DPRAM(80)의 출력부는 모듈 제어기(76)를 DSP(56), 공유 메모리(58) 및 (선택적으로) CODEC(압축기/압축 해제기)(84)와 접속시키는 DSP 로컬 버스(82)에 결합된다.
이 모듈은 MMU(12)로부터 나오는 표준 메모리 버스 신호를 갖는다. 예를 들면, SIMM, DIMM에 전형적으로 설치되는 어드레스 라인, 데이터 라인, 및 제어 라인, 또는 노트북 컴퓨터, PC 및 PDA에 설치되는 다른 메모리 확장 모듈이 있다. 이 프로토타입은 상술된 바와 같은 동작의 표준, 구성 및 스마트 모드를 지원한다.
동작 시에, 모듈 상의 DRAM(78)은 MPU(12)와 DSP(56) 간에 공유되지 않는다. 표준 모드에서, MPU(12)는 DSP/메모리 모듈(40)의 전체 메모리 공간에 걸친 DRAM(78)을 판독하고 이에 기록한다. 그러나, 스마트 모드에서, 모듈 제어기(76) 패스는 DRAM(78)에 대응하는 위치 대신에, MPU(12)에 의해 DPRAM(80)의 공유 메모리(54)를 판독하고 이에 기록한다. DSP(56)는 DRAM(78)이 아닌 DPRAM(80)만을 판독하고 이에 기록할 수 있다. 이 아키텍쳐는 MPU(12)와 DSP(56) 간의 메모리 액세스 충돌을 감소시킨다.
제어 레지스터(42) 및 MIS(72)는 모듈 제어기(76) 내에서 구현될 수 있다.
도 10에, DSP/메모리 모듈(40)의 제2 실시예가 도시되어 있으며, 모듈 제어기(76)는 데이터와 어드레스 버스(75) 및 스위치(86)를 통한 DSP 로컬 버스(82) 간의 DRAM(78)으로의 액세스를 스위치한다. 이 실시예에서, DSP(56)는 DRAM(76)를 판독하고 이에 기록한다. 그러나, MPU(12)는 DRAM(78)의 공유된 어드레스에 대해 보다 높은 우선순위를 가지며, DSP(56) 및 MPU(12) 모두가 DRAM(78)을 동시에 액세스하려고 할 때, 모듈 제어기는 DSP(56)를 홀드로 하고 MPU 메모리 버스(75)에 스위치한다.
MPU 메모리 버스(75)는 통상의 데이터, 어드레스, 및 제어 라인으로 구성되는 전형적인 메모리 버스이다. DRAM(58)으로의 MPU(12) 액세스는 트랜스패런트하다. 즉 모듈 제어기(76)는, MPU(12)가 임의의 지연을 초래하지 않도록 스위치를 실현한다. MPU(12)가 고려되는 한, 모듈이 정상 메모리 확장 모듈로서 DRAM(78)만을 포함하면 DRAM(78)을 액세스하는데 있어 동일한 지연을 초래한다.
트랜스패런트 스위치를 제공하기 위해, DSP/메모리 모듈(40)의 정해진 속도율보다 높은 속도율인 DRAM(78)을 사용하는 것이 필요할 수 있다. 예를 들면, 70㎱ DSP/메모리 모듈(40)을 제공하기 위해, 약간의 스위치 지연을 보상하기 위해 60㎱ DRAM(78)을 사용하는 것이 필요할 수 있다.
도 11은 DSP/메모리 모듈(40)의 제3 실시예를 도시한다. 이 실시예에서, MPU 메모리 버스(75)와 DSP 로컬 버스(82) 간을 스위치할 때의 지연 때문에, WAIT 신호가 제공된다. 이 신호는 버스들 간의 스위치 동안 어써트되어 스위치가 발생하는 동안 MPU 액세스를 홀드한다. WAIT 신호는 부수적인 라인을 사용함으로써 또는 현재 표준 메모리 버스 신호의 조합, 예를 들어 WAIT가 어써트되었다는 것을 MMU, 및 MPU(12)에 통지하는 리프레쉬와 기록 인에이블링 신호들의 독특한 조합을 사용함으로써 구현될 수 있다. 대체적으로, 분리 신호 라인 또는 핀은 차후 표준 메모리 모듈에 할당될 수 있다.
더우기, 이 실시예는 또한 모듈이 인터럽트를 MPU(12)와 같은 외부 장치에 송신하게 하는 인터럽트 요청 신호(Interrupt Request Signal: IREQ)를 지원한다. 인터럽트는, 예를 들어 DSP가 그 요구된 태스크를 완료하였다는 것을 MPU(12)에 통지하는데 사용될 수 있다. 예를 들면, MPU(12)는 파형 테이블 사운드를 변환하기 위해 데이터를 공유 메모리에 놓고, DSP는, 동작이 완료되었을 때 DSP(56)에 의한 변환이 수행되면서 MPU(12)가 다른 태스크를 동작하게 하도록 MPU를 인터럽트할 수 있다. IREQ 신호는 현재 표준 메모리 버스 신호의 조합을 사용함으로써 구현될 수 있다, 예를 들어 리프레쉬와 기록 인에이블링 신호의 조합은 펜딩 서비스 요청의 호스트를 시그널링하는데 사용될 수 있다. 대체적으로, 분리 신호 라인 또는 핀은 차후 표준 메모리 모듈 설계에 할당될 수 있다.
다음 섹션은 WAIT 및 IREQ 신호를 구현하는 방법을 설명한다. 6가지 옵션이 설명되는데, 이들 신호들이 어떻게 접속되고 호스트 제어기에 의해 조작되는가를 도시한다(호스트 제어기는 또한 이 문서에서 메모리 제어기(76)라 불리움). 메모리 모듈(MM)(98)에 대한 이들 신호들을 설명하며, 이하에 도시된 예에서, 고속 페이지 모드(Fast Page Mode: FPM), 확장 데이터 출력(Extended Data Output: EDO), 동기식(S) 또는 이중 데이터 속도 동기식(Double Data Rate Synchronous: DDR-S) 동적 랜덤 액세스 메모리(DRAM)를 갖는 듀얼-인-라인 메모리-모듈(Dual-in-line memory-modules: DIMM)을 고려하였다. 그러나, 이들 가르침들은 또한 다른 형태의 메모리/메모리 모듈에 응용 가능하다. 이들 DIMM(98)의 각각은 둘 이상의 메모리 뱅크를 갖는다.
IREQ 및 WAIT 신호의 구현 옵션 1:
각 뱅크에 대한 하나의 WAIT 신호 및 하나의 인터럽트 신호:
DIMM 효과:
· 이 옵션은 4 신호를 각 DIMM 모듈(98), /MWAIT0 신호(101), /MWAIT1 신호(102), /MIRQ0 신호(103), 및 /MIRQ1 신호(104)에 부가한다.
· 도 14의 블록도를 참조한다.
메모리 제어기 효과:
· 메모리 제어기는 n 뱅크의 각각에 부가되는 하나의 /MWAITn 신호(101 또는 102) 및 하나의 /MIRQn 신호(103 또는 104)를 가질 것이다.
· 메모리 제어기(76)는 상기 부가된 신호를 파악하기 위해 필요한 로직을 포함할 것이다.
· 메모리 제어기(76)는 셋업 레지스터(76a)(필요하다면)를 포함할 것이다.
· 도 14의 블록도를 참조한다.
신호 리스트 및 설명:
DSP 액세스에 대한 메모리 유자격(DDR-S/SDRAM 전용):
종래의 DRAM과는 달리, 동기식 DRAM은 2 또는 4 내부 뱅크를 갖는다. 이 특징 때문에, 메모리 제어기는 한번에 2 또는 4 페이지를 오픈하고 판독 및 기록 액세스를 위해 그들 간에 즉시 스위치하는 능력을 갖는다. 이 특징은 종래 DRAM보다 다소 복잡한 메모리로의 DSP 액세스의 유자격을 만든다. 유자격에 대한 규정 세트는 정의되어야 한다.
옵션 1: 공유된 SDRAM은, 모든 페이지가 폐쇄된 것으로 공지될 때(PALL 커맨드 후에) DSP 액세스에만 자격이 있다. 이는 호스트와 DSP 간의 어떠한 충돌도 없다는 것을 확신할 것이다. 메모리 유자격의 시점 후에, 호스트 제어기는 /Sn을 로우로 구동하고 임의의 새로운 커맨드를 송출하기 전에 대기 신호를 모니터링해야 한다. 그 다음 ACTV 커맨드는 /MWAITn이 하이로서 샘플링되는 사이클에 후속하는 사이클에 어써트될 수 있다. 이 옵션은, 호스트 제어기가 매 메모리 액세스의 종료 시 모든 페이지를 폐쇄하면 가장 효과적으로 동작한다. 이 옵션은 표준 DRAM(단일 뱅크)과 상당히 유사한 SDRAM을 많이 다룬다. 도 16을 참조한다.
옵션 2: 호스트 제어기는 DSP가 액세스하고 싶어하는 특수한 뱅크에 대한 READA, WRITEA, 또는 PRE 커맨드를 실행한 후에, 메모리는 뱅크를 기초로 하여 DSP 액세스할 자격이 있다. 이 방법은 다소 덜 간단하며, 호스트 제어기가 현재 액세스하고 있는 뱅크를 DSP가 모니터링하도록 요구한다. 또한, 호스트 제어기가 다른 내부 뱅크 상에서 WRITE 또는 READ 커맨드를 즉시 실행하도록 선택할 수 있는 경우, DSP는 이들 3개의 커맨드들 중 한 커맨드 직후에 메모리로의 액세스를 얻을 수 없다. 소정의 뱅크가 프리차지(precharge)된 것으로 공지될 때, 메모리는 버스트 판독 또는 기록이 완료된 후, 그리고 /Sn 입력이 하이이거나, 또는 메모리 활동 없이 선정된 수의 클럭 사이클 후에 DSP 액세스에 대한 자격이 있다. 그러나, 다른 페이지가 여전히 오픈될 수 있으므로, 호스트 제어기가 동일한 페이지 액세스 동안 몇가지 대기상황들(waits)을 초래할 수 있다. 메모리 유자격의 시점 후에, 호스트 제어기는 /Sn을 로우로 구동하고, 임의의 새로운 커맨드를 송출하기 전에 대기 신호를 모니터링해야 한다. 그 다음 ACTV, WRITE, 또는 READ 커맨드들은 /MWAITn이 하이로서 샘플링되는 사이클에 후속하는 사이클에 어써트될 수 있다. 도 17을 참조한다.
옵션 3: 메모리는 임의의 시간에 DSP 액세스에 대한 자격이 있다. 이 옵션은, 호스트 제어기가 메모리 트랜잭션(transaction)으로 현재 비통화중일 때마다 메모리를 액세스하여 DSP가 페이지를 중단하게 한다. 메모리는, 임의의 버스트 판독 또는 기록이 완료된 후, 그리고 /Sn 입력이 하이이거나, 또는 메모리 활동 없이 선정된 수의 클럭 사이클 후에 DSP 액세스에 대한 자격이 있다. 메모리로의 액세스를 얻은 후, DSP는 PALL 또는 하나 이상의 PRE를 거쳐 액세스하고 싶은 모든 뱅크에 대한 프리차지의 송출을 담당하고 있다. 프리차징이 완료된 후, DSP는 그 소정의 행에 대한 ACTV 커맨드를 송출할 수 있다. 메모리 유자격의 시점 후에, 호스트 제어기는 /Sn을 로우로 구동하고, 임의의 새로운 커맨드를 송출하기 전에 대기 신호를 모니터링해야 한다. /MWAITn이 로우로 샘플링되면, 이 때 제어기는 새로운 ACTV 커맨드로 페이지를 다시 오픈해야 한다. 도 18을 참조한다.
비인터럽트된 DSP 액세스의 종료 시, DSP는 두 개의 옵션을 갖는다.
a) DSP는 그 액세스된 뱅크를 프리차지하고 의심되는 페이지(ACTV 커맨드를 거쳐)를 다시 오픈하고 /MWAITn 신호를 다시 하이로 구동시킨다. (이는 물론 DSP가 최종 호스트 제어기 페이지 어드레스를 레지스터링하도록 요구함.)
b) DSP는, 액세스된 뱅크를 프리차지하고 /MWAITn 신호를 로우로 구동시키는 것을 계속 진행하여, 임의의 소정의 페이지가 ACTV 커맨드를 거쳐 재-오픈되어야 한다는 것을 제어기에 지시한다.
메모리 제어기 셋업 레지스터:
이는 n 뱅크들 중 어느 것이 /MWAITn 신호를 구동할 것인가를 사전에 정의하기 위해 n 레지스터 비트를 메모리 제어기에 부가하는데 도움이 될 수 있다. /MWAITn 신호를 구동하지 않는 메모리 뱅크로의 액세스는 각 메모리 액세스에 대한 /MWAITn 신호 샘플링과 관련된 가능한 제어기 레이턴시를 겪을 필요가 없다.
IREQ 및 WAIT 신호의 구현 옵션 2:
모든 DIMM에 대한 하나의 전역 WAIT 신호, 및 각 뱅크에 대한 하나의 인터럽트 신호:
DIMM 효과:
· 이 옵션은 3 신호를 각 DIMM 모듈(98), /MWAIT 신호(105), /MIRQ0 신호(103), 및 /MIRQ1 신호(104)에 부가할 것이다.
· 도 19의 블록도를 참조한다.
메모리 제어기 효과:
· 메모리 제어기는 n 뱅크의 각각에 부가된 하나의 /MIRQn 신호(103 또는 104)를 가질 것이다. 메모리 제어기는 하나의 /MWAIT 신호(105)만이 부가되게 할 것이다. 따라서 (1+n) 여분 핀이 필요하게 되는데, 여기서 n은 메모리 뱅크의 총수이다.
· 메모리 제어기는 상기 부가된 신호를 파악하기 위해 필요한 로직을 포함할 것이다.
· 메모리 제어기는 셋업 레지스터(필요하다면)를 포함한다.
· 도 19의 블록도를 참조한다.
신호 리스트 및 설명:
DSP 액세스에 대한 메모리 유자격(DDR-S/SDRAM 전용):
종래의 DRAM과는 달리, 동기식 DRAM은 2 또는 4 내부 뱅크를 갖는다. 이 특징 때문에, 메모리 제어기는 한번에 2 또는 4 페이지를 오픈하고 판독 및 기록 액세스를 위해 그들 간에 즉시 스위치하는 능력을 갖는다. 이 특징은 종래 DRAM보다 다소 복잡한 메모리로의 DSP 액세스의 유자격을 만든다. 유자격에 대한 규정 세트는 정의되어야 한다.
옵션 1: 공유된 SDRAM은, 모든 페이지가 폐쇄된 것으로 공지될 때(PALL 커맨드 후에) DSP 액세스에만 자격이 있다. 이는 호스트와 DSP 간의 어떠한 충돌도 없다는 것을 확신할 것이다. 메모리 유자격의 시점 후에, 호스트 제어기는 /Sn을 로우로 구동하고 임의의 새로운 커맨드를 송출하기 전에 대기 신호를 모니터링해야 한다. 그 다음 ACTV 커맨드는 /MWAIT가 하이로서 샘플링되는 사이클에 후속하는 사이클에 어써트될 수 있다. 이 옵션은, 호스트 제어기가 매 메모리 액세스의 종료 시 모든 페이지를 폐쇄하면 가장 효과적으로 동작한다. 이 옵션은 표준 DRAM(단일 뱅크)과 상당히 유사한 SDRAM을 많이 다룬다. 도 21을 참조한다.
옵션 2: 호스트 제어기는 DSP가 액세스하고 싶어하는 특수한 뱅크에 대한 READA, WRITEA, 또는 PRE 커맨드를 실행한 후에, 메모리는 뱅크를 기초로 하여 DSP 액세스할 자격이 있다. 이 방법은 다소 덜 간단하며, 호스트 제어기가 현재 액세스하고 있는 뱅크를 DSP가 모니터링하도록 요구한다. 또한, 호스트 제어기가 다른 내부 뱅크 상에서 WRITE 또는 READ 커맨드를 즉시 실행하도록 선택할 수 있는 경우, DSP는 이들 3개의 커맨드들 중 한 커맨드 직후에 메모리로의 액세스를 얻을 수 없다. 소정의 뱅크가 프리차지된 것으로 공지될 때, 메모리는 버스트 판독 또는 기록이 완료된 후, 그리고 /Sn 입력이 하이이거나, 또는 메모리 활동 없이 선정된 수의 클럭 사이클 후에 DSP 액세스에 대한 자격이 있다. 그러나, 다른 페이지가 여전히 오픈될 수 있으므로, 호스트 제어기가 동일한 페이지 액세스 동안 몇가지 대기상황들을 초래할 수 있다. 메모리 유자격의 시점 후에, 호스트 제어기는 /Sn을 로우로 구동하고, 임의의 새로운 커맨드를 송출하기 전에 대기 신호를 모니터링해야 한다. 그 다음 ACTV, WRITE, 또는 READ 커맨드들은 /MWAIT가 하이로서 샘플링되는 사이클에 후속하는 사이클에 어써트될 수 있다. 도 22를 참조한다.
옵션 3: 메모리는 임의의 시간에 DSP 액세스에 대한 자격이 있다. 이 옵션은, 호스트 제어기가 메모리 트랜잭션으로 현재 비통화중일 때마다 메모리를 액세스하여 DSP가 페이지를 중단하게 한다. 메모리는, 임의의 버스트 판독 또는 기록이 완료된 후, 그리고 /Sn 입력이 하이이거나, 또는 메모리 활동 없이 선정된 수의 클럭 사이클 후에 DSP 액세스에 대한 자격이 있다. 메모리로의 액세스를 얻은 후, DSP는 PALL 또는 하나 이상의 PRE를 거쳐 액세스하고 싶은 모든 뱅크에 대한 프리차지의 송출을 담당하고 있다. 프리차징이 완료된 후, DSP는 그 소정의 행에 대한 ACTV 커맨드를 송출할 수 있다. 메모리 유자격의 시점 후에, 호스트 제어기는 /Sn을 로우로 구동하고, 임의의 새로운 커맨드를 송출하기 전에 대기 신호를 모니터링해야 한다. /MWAIT가 로우로 샘플링되면, 이 때 제어기는 새로운 ACTV 커맨드로 페이지를 다시 오픈해야 한다. 도 23을 참조한다.
인터럽트되지 않은 DSP 액세스의 종료 시, DSP는 두 개의 옵션을 갖는다.
a) DSP는 그 액세스된 뱅크를 프리차지하고 의심되는 페이지(ACTV 커맨드를 거쳐)를 다시 오픈하고 /MWAIT 신호를 다시 하이로 구동시킨다. (이는 물론 DSP가 최종 호스트 제어기 페이지 어드레스를 레지스터링하도록 요구함.)
b) DSP는, 액세스된 뱅크를 프리차지하고 /MWAITn 신호를 로우로 구동시키는 것을 계속 진행하여, 임의의 소정의 페이지가 ACTV 커맨드를 거쳐 재-오픈되어야 한다는 것을 제어기에 지시한다.
메모리 제어기 셋업 레지스터:
이는 n 뱅크들 중 어느 것이 /MWAIT 신호를 구동할 것인가를 사전에 정의하기 위해 n 레지스터 비트를 메모리 제어기에 부가하는데 도움이 될 수 있다. /MWAIT 신호를 구동하지 않는 메모리 뱅크로의 액세스는 각 메모리 액세스에 대한 /MWAIT 신호 샘플링과 관련되는 가능한 제어기 레이턴시를 겪을 필요가 없다.
IREQ 및 WAIT 신호의 구현 옵션 3:
각 뱅크에 대한 하나의 다중화된 WAIT/인터럽트 신호:
DIMM에 대한 효과:
· 이 옵션은 2 신호를 각 DIMM 신호(98), /M0WAIT/IRQ 신호(107), 및 /M1WAIT/IRQ 신호(108)에 부가할 것이다.
· 도 24의 블록도를 참조한다.
메모리 제어기에 대한 효과:
· 메모리 제어기는 n 뱅크의 각각에 부가된 하나의 /MnWAIT/IRQ 신호(107 또는 108)를 가질 것이다. 따라서 n 여분 핀이 필요하게 되는데, 여기서 n은 메모리 뱅크의 총수이다.
· 메모리 제어기는 상기 부가된 신호를 파악하기 위해 필요한 로직을 포함할 것이다.
· 메모리 제어기는 셋업 레지스터(필요하다면)를 포함한다.
· 도 24의 블록도를 참조한다.
신호 리스트 및 설명:
DSP 액세스에 대한 메모리 유자격(DDR-S/SDRAM 전용):
종래의 DRAM과는 달리, 동기식 DRAM은 2 또는 4 내부 뱅크를 갖는다. 이 특징 때문에, 메모리 제어기는 한번에 2 또는 4 페이지를 오픈하고 판독 및 기록 액세스를 위해 그들 간에 즉시 스위치하는 능력을 갖는다. 이 특징은 종래 DRAM보다 다소 복잡한 메모리로의 DSP 액세스의 유자격을 만든다. 유자격에 대한 규정 세트는 제한되어야 한다.
옵션 1: 공유된 SDRAM은, 모든 페이지가 폐쇄된 것으로 공지될 때(PALL 커맨드 후에) DSP 액세스에만 자격이 있다. 이는 호스트와 DSP 간의 어떠한 충돌도 없다는 것을 확신할 것이다. 메모리 유자격의 시점 후에, 호스트 제어기는 /Sn을 로우로 구동하고 임의의 새로운 커맨드를 송출하기 전에 대기 신호를 모니터링해야 한다. 그 다음 ACTV 커맨드는 /MnWAIT/IRQ가 하이로서 샘플링되는 사이클에 후속하는 사이클에 어써트될 수 있다. 이 옵션은, 호스트 제어기가 매 메모리 액세스의 종료 시 모든 페이지를 폐쇄하면 가장 효과적으로 동작한다. 이 옵션은 표준 DRAM(단일 뱅크)과 상당히 유사한 SDRAM을 많이 다룬다. 도 26을 참조한다.
옵션 2: 호스트 제어기는 DSP가 액세스하고 싶어하는 특수한 뱅크에 대한 READA, WRITEA, 또는 PRE 커맨드를 실행한 후에, 메모리는 뱅크를 기초로 하여 DSP 액세스할 자격이 있다. 이 방법은 다소 덜 간단하며, 호스트 제어기가 현재 액세스하고 있는 뱅크를 DSP가 모니터링하도록 요구한다. 또한, 호스트 제어기가 다른 내부 뱅크 상에서 WRITE 또는 READ 커맨드를 즉시 실행하도록 선택할 수 있는 경우, DSP는 이들 3개의 커맨드들 중 한 커맨드 후에 직접 메모리로의 액세스를 얻을 수 없다. 소정의 뱅크가 프리차지된 것으로 공지될 때, 메모리는 버스트 판독 또는 기록이 완료된 후, 그리고 /Sn 입력이 하이이거나, 또는 메모리 활동 없이 선정된 수의 클럭 사이클 후에 DSP 액세스에 대한 자격이 있다. 그러나, 다른 페이지가 여전히 오픈될 수 있으므로, 호스트 제어기가 동일한 페이지 액세스 동안 몇가지 대기상황들을 초래할 수 있다. 메모리 유자격의 시점 후에, 호스트 제어기는 /Sn을 로우로 구동하고, 임의의 새로운 커맨드를 송출하기 전에 대기 신호를 모니터링해야 한다. 그 다음 ACTV, WRITE, 또는 READ 커맨드들은 /MnWAIT/IRQ가 하이로서 샘플링되는 사이클에 후속하는 사이클에 어써트될 수 있다. 도 27를 참조한다.
옵션 3: 메모리는 임의의 시간에 DSP 액세스에 대한 자격이 있다. 이 옵션은, 호스트 제어기가 메모리 트랜잭션으로 현재 비통화중일 때마다 메모리를 액세스하여 DSP가 페이지를 중단하게 한다. 메모리는, 임의의 버스트 판독 또는 기록이 완료된 후, 그리고 /Sn 입력이 하이이거나, 또는 메모리 활동 없이 선정된 수의 클럭 사이클 후에 DSP 액세스에 대한 자격이 있다. 메모리로의 액세스를 얻은 후, DSP는 PALL 또는 하나 이상의 PRE를 거쳐 액세스하고 싶은 모든 뱅크에 대한 프리차지의 송출을 담당하고 있다. 프리차징이 완료된 후, DSP는 그 소정의 행에 대한 ACTV 커맨드를 송출할 수 있다. 메모리 유자격의 시점 후에, 호스트 제어기는 /Sn을 로우로 구동하고, 임의의 새로운 커맨드를 송출하기 전에 대기 신호를 모니터링해야 한다. /MnWAIT/IRQ가 로우로 샘플링되면, 이 때 제어기는 새로운 ACTV 커맨드로 페이지를 다시 오픈해야 한다. 도 28을 참조한다.
인터럽트되지 않은 DSP 액세스의 종료 시, DSP는 두 개의 옵션을 갖는다.
a) DSP는 그 액세스된 뱅크를 프리차지하고 의심되는 페이지(ACTV 커맨드를 거쳐)를 다시 오픈하고 /MnWAIT/IRQ 신호를 다시 하이로 구동시킨다. (이는 물론 DSP가 최종 호스트 제어기 페이지 어드레스를 레지스터링하도록 요구함.)
b) DSP는 액세스된 뱅크를 프리차지하고 /MWAITn 신호를 로우로 구동시키는 것을 계속 진행하여, 임의의 소정의 페이지가 ACTV 커맨드를 거쳐 재-오픈되어야 한다는 것을 제어기에 지시한다.
메모리 제어기 셋업 레지스터:
이는 n 뱅크들 중 어느 것이 /MnWAIT/IRQ 신호를 구동할 것인가를 사전에 정의하기 위해 n 레지스터 비트를 메모리 제어기에 부가하는데 도움이 될 수 있다. /MnWAIT/IRQ 신호를 구동하지 않는 메모리 뱅크로의 액세스는 각 메모리 액세스에 대한 /MnWAIT/IRQ 신호 샘플링과 관련되는 가능한 제어기 레이턴시를 겪을 필요가 없다.
IREQ 및 WAIT 신호의 구현 옵션 4:
각 뱅크에 대한 비대기 신호, 하나의 인터럽트 신호:
DIMM에 대한 효과:
· 이 옵션은 2 신호를 각 DIMM 신호(98), /MIRQ0 신호(103), 및 /MIRQ1 신호(104)에 부가할 것이다.
· 도 29의 블록도를 참조한다.
메모리 제어기에 대한 효과:
· 메모리 제어기는 n 뱅크의 각각에 부가된 하나의 /MIRQn 신호(103 또는 104)를 가질 것이다. 대기 기능의 구현은 이하에 섹션 2.4.6에서 설명된다. 따라서 n 여분 핀이 필요하게 되는데, 여기서 n은 메모리 뱅크의 총수이다.
· 메모리 제어기는 상기 부가된 신호를 파악하기 위해 필요한 로직을 포함할 것이다.
· 메모리 제어기는 WAIT 기능을 구현하기 위해 적절한 셋업 레지스터 및 로직을 포함할 것이다.
· 도 29의 블록도를 참조한다.
신호 리스트 및 설명:
DSP 액세스에 대한 메모리 유자격(DDR-S/SDRAM 전용):
종래의 DRAM과는 달리, 동기식 DRAM은 2 또는 4 내부 뱅크를 갖는다. 이 특징 때문에, 메모리 제어기는 한번에 2 또는 4 페이지를 오픈하고, 판독 및 기록 액세스인 경우 그들 간에 즉시 스위치하는 능력을 갖는다. 이 특징은 종래의 DRAM보다 다소 복잡한 메모리로의 DSP 액세스의 유자격을 만든다. 유자격에 대한 규정 세트가 정의되어야 한다.
이 옵션인 경우, 공유된 SDRAM은, 모든 페이지가 폐쇄된 것으로 공지될 때(PALL 커맨드 후에) DSP 액세스에 대해서만 자격이 있다. 이는, 제어기가 유자격의 영역이 시작하는 곳을 결정하는 것이 용이해져 메모리 제어기 설계가 상당히 간단해진다. 이 옵션은, 매 메모리 액세스의 종료 시 모든 페이지를 폐쇄하면 가장 효과적으로 동작한다. 이 옵션은 표준 DRAM(단일 뱅크)과 상당히 유사한 SDRAM을 다룬다.
메모리 제어기 셋업 레지스터:
MM이 "스마트 모드"에 놓일 때, 메모리 액세스의 RAS-대-CAS 지연은, 선택된 뱅크의 (S)DRAM이 공유될 것이기 때문에 필요하다. FPM 또는 EDO DRAM인 경우, RAS-대-CAS 지연은 /RAS의 하강 에지에서 /CAS의 하강 에지까지의 시간을 말한다. SDRAM을 사용할 때, RAS-대-CAS 지연은 ROW ACTIVE와 READ 또는 WRITE 커맨드 간의 메모리 클럭 사이클수를 말한다. /CAS의 제1 하강 에지 후의 모든 다른 타이밍은 정상으로서 진행할 수 있다.
이 지연(또는 대기) 기능을 구현하기 위해, n 뱅크의 각각에 대한 RAS-대-CAS 대기 시간을 사전에 정의하기 위해 n 레지스터를 메모리 제어기에 부가할 필요가 있다. 오늘날 많은 제어기들이 이 특징을 갖지만, 단지 전역(뱅크가 아닌)을 기초로 한다. 제어기는 공유 메모리를 역으로 제어기로 릴리스하기 위해 MM에 필요한 시간보다 큰 값으로 RAS-대-CAS 지연을 또한 연장할 수 있어야 한다. 일반적으로, 이 시간은 MM에 사용되는 임의의 DRAM인 경우 tRC(판독 또는 기록 사이클 시간) 만큼일 것이다. 이 옵션에서, 메모리가 이용 가능할 때를 가리키기 위하여 MM으로부터 어떠한 피드백도 없기 때문에, RAS-대-CAS 지연 시간은 tRC+tMM_BUS_SWITCH, 또는 공유 메모리가 메모리 제어기에 의해 액세스될 수 있다는 것을 완전히 보장하는데 필요한 총 시간보다 큰 "안전(safe)"값으로 설정되어야 한다.
확장된 사이클을 필요로 하기 위해 사전에 정의되지 않은 메모리 뱅크로의 액세스는 정상적으로 동작하도록 파워업 시 설정될 것이다. DSP를 갖는 뱅크에 대응하는 레지스터로의 액세스는 파워업 때만이 아니고, 동적으로 행해질 것이다. 이는, MM이 스마트 모드로 및 그를 벗어날 때 대기 길이 시간이 "비행중(on the fly)"으로 변경되도록 할 것이다.
MM이 "스마트 모드"에 있지 않을 때, MM의 선택된 뱅크는 표준 DRAM으로서 정상적으로 동작할 것이다.
IREQ 및 WAIT 신호의 구현 옵션 5:
각 모듈에 대한 하나의 다중화 및 벡터화된 WAIT/인터럽트 신호(DDR-S/SDRAM 전용):
DIMM에 대한 효과:
· 이 옵션은 1 신호를 각 DIMM 모듈(98), /MWAIT/IRQ 신호(109)에 부가할 것이다.
· 도 30의 블록도를 참조한다.
메모리 제어기에 대한 효과:
· 메모리 제어기는 각 MM(2개의 뱅크를 포함함)에 부가되는 하나의 MWAIT/IRQ 신호(109)를 가질 것이다. 따라서, n/2 여분 핀이 필요하게 되는데, 여기서 n은 메모리 뱅크의 총수이다.
· 메모리 제어기는 상기 부가된 신호를 파악하기 위해 필요한 로직을 포함할 것이다.
· 메모리 제어기는 셋업 레지스터(필요하다면)를 포함할 것이다.
· 도 30의 블록도를 참조한다.
신호 리스트 및 설명:
DSP 액세스에 대한 메모리 유자격:
종래의 DRAM과는 달리, 동기식 DRAM은 2 또는 4 내부 뱅크를 갖는다. 이 특징 때문에, 메모리 제어기는 한번에 2 또는 4 페이지를 오픈하고 판독 및 기록 액세스를 위해 그들 간에 즉시 스위치하는 능력을 갖는다. 이 특징은 종래 DRAM보다 다소 복잡한 메모리로의 DSP 액세스의 유자격을 만든다. 유자격에 대한 규정 세트는 정의되어야 한다.
옵션 1: 공유된 SDRAM은, 모든 페이지가 폐쇄된 것으로 공지될 때(PALL 커맨드 후에) DSP 액세스에만 자격이 있다. 이는 호스트와 DSP 간의 어떠한 충돌도 없다는 것을 확신할 것이다. 메모리 유자격의 시점 후에, 호스트 제어기는 /Sn을 로우로 구동하고 임의의 새로운 커맨드를 송출하기 전에 대기 신호를 모니터링해야 한다. 그 다음 ACTV 커맨드는 /MWAIT/IRQ이 하이로서 샘플링되는 사이클에 후속하는 사이클에 어써트될 수 있다. 이 옵션은, 호스트 제어기가 매 메모리 액세스의 종료 시 모든 페이지를 폐쇄하면 가장 효과적으로 동작한다. 이 옵션은 표준 DRAM(단일 뱅크)과 상당히 유사한 SDRAM을 많이 다룬다. 도 31을 참조한다.
옵션 2: 호스트 제어기는 DSP가 액세스하고 싶어하는 특수한 뱅크에 대한 READA, WRITEA, 또는 PRE 커맨드를 실행한 후에, 메모리는 뱅크를 기초로 하여 DSP 액세스할 자격이 있다. 이 방법은 다소 덜 간단하며, 호스트 제어기가 현재 액세스하고 있는 뱅크를 DSP가 모니터링하도록 요구한다. 또한, 호스트 제어기가 다른 내부 뱅크 상에서 WRITE 또는 READ 커맨드를 즉시 실행하도록 선택할 수 있는 경우, DSP는 이들 3개의 커맨드들 중 한 커맨드 후에 직접 메모리로의 액세스를 얻을 수 없다. 소정의 뱅크가 프리차지된 것으로 공지될 때, 메모리는 버스트 판독 또는 기록이 완료된 후, 그리고 /Sn 입력이 하이이거나, 또는 메모리 활동 없이 선정된 수의 클럭 사이클 후에 DSP 액세스에 대한 자격이 있다. 그러나, 다른 페이지가 여전히 오픈될 수 있으므로, 호스트 제어기가 동일한 페이지 액세스 동안 몇가지 대기상황들을 초래할 수 있다. 메모리 유자격의 시점 후에, 호스트 제어기는 /Sn을 로우로 구동하고, 임의의 새로운 커맨드를 송출하기 전에 대기 신호를 모니터링해야 한다. 그 다음 ACTV, WRITE, 또는 READ 커맨드들은 /MWAIT/IRQ가 하이로서 샘플링되는 사이클에 후속하는 사이클에 어써트될 수 있다. 도 32를 참조한다.
옵션 3: 메모리는 임의의 시간에 DSP 액세스에 대한 자격이 있다. 이 옵션은, 호스트 제어기가 메모리 트랜잭션으로 현재 비통화중일 때마다 메모리를 액세스하여 DSP가 페이지를 중단하게 한다. 메모리는, 임의의 버스트 판독 또는 기록이 완료된 후, 그리고 /Sn 입력이 하이이거나, 또는 메모리 활동 없이 선정된 수의 클럭 사이클 후에 DSP 액세스에 대한 자격이 있다. 메모리로의 액세스를 얻은 후, DSP는 PALL 또는 하나 이상의 PRE를 거쳐 액세스하고 싶은 모든 뱅크에 대한 프리차지의 송출을 담당하고 있다. 프리차징이 완료된 후, DSP는 그 소정의 행에 대한 ACTV 커맨드를 송출할 수 있다. 메모리 유자격의 시점 후에, 호스트 제어기는 /Sn을 로우로 구동하고, 임의의 새로운 커맨드를 송출하기 전에 대기 신호를 모니터링해야 한다. /MWAITn이 로우로 샘플링되면, 이 때 제어기는 새로운 ACTV 커맨드로 페이지를 다시 오픈해야 한다. 도 33을 참조한다.
인터럽트되지 않은 DSP 액세스의 종료 시, DSP는 두 개의 옵션을 갖는다.
a) DSP는 그 액세스된 뱅크를 프리차지하고 의심되는 페이지(ACTV 커맨드를 거쳐)를 다시 오픈하고 /MWAITn 신호를 다시 하이로 구동시킨다. (이는 물론 DSP가 최종 호스트 제어기 페이지 어드레스를 레지스터링하도록 요구함.)
b) DSP는 액세스된 뱅크를 프리차지하고 /MWAITn 신호를 로우로 구동시키는 것을 계속 진행하여, 임의의 소정의 페이지가 ACTV 커맨드를 거쳐 재-오픈되어야 한다는 것을 제어기에 가리킨다.
메모리 제어기 셋업 레지스터:
이는 n 뱅크들 중 어느 것이 /MWAIT/IRQ 신호를 구동할 것인가를 사전에 정의하기 위해 n 레지스터 비트를 메모리 제어기에 부가하는데 도움이 될 수 있다. /MWAIT/IRQ 신호를 구동하지 않는 메모리 뱅크로의 액세스는 각 메모리 액세스에 대한 /MWAIT/IRQ 신호 샘플링과 관련되는 가능한 제어기 레이턴시를 겪을 필요가 없다.
IREQ 및 WAIT 신호의 구현 옵션 6:
새로운 신호가 없는, 비인터럽트 라인, 1 세마포어 비트:
DIMM에 대한 효과:
· 없음
메모리 제어기에 대한 효과:
· 메모리 제어기는 필요한 로직을 포함하여 임의의 공유 메모리를 액세스하기 전에 세마포어 비트 메모리 위치를 액세스함으로써 대기 기능을 구현할 것이다.
· 메모리 제어기는 셋업 레지스터를 포함하여 어느 뱅크가 공유 메모리로 거주되는가를 사전에 정의할 것이다.
신호 리스트 및 설명:
· 어떠한 여분의 신호도 요구되지 않는다.
블록도:
· DIMM 및 메모리 제어기 핀아웃은 동일하게 된다.
메모리 제어기 셋업 레지스터:
대기 기능을 구현하기 위해, 어느 뱅크가 공유 메모리를 포함할 것인가를 사전에 정의하기 위해 n 비트의 레지스터를 메모리 제어기에 부가하는 것이 필요하다.
IREQ 및 WAIT 신호의 다양한 토픽의 구현:
SSTL 대 TTL:
상기 제안된 모든 대기 및 인터럽트 신호가 시스템 메모리 클럭의 상승 에지 만을 사용하기 때문에, 그들은 표준 TTL 또는 LVTTL로 구현될 것이다.
리프레쉬 조작:
스마트 모드에 있는 동안, 리프레쉬는 두 가지 방법중 한 방법으로 조작될 수 있다.
옵션 1: 메모리 제어기가 CBR(또는 EDO & FPM DRAM인 경우에만 /RAS) 리프레쉬를 요청할 때, MM은 이 커맨드를 검출하고 이를 즉시 실행하거나(비통화중이면), 또는 리프레쉬 커맨드를 "버퍼 업(buffer up)"하고, DSP가 메모리를 액세스하지 않을 때 나중에 리프레쉬 커맨드를 실행할 것이다.
옵션 2: 메모리 제어기가 리프레쉬를 요청하고, DSP가 공유 메모리를 액세스하고 있을 때, 상기 옵션에서 정의된 동일한 대기 프로토콜이 구현될 것이다. 제어기는, MM이 리프레쉬 동작을 완료하도록 메모리에 접속을 끊을 때까지 대기해야 한다.
메모리 버스 캐패시턴스/메모리 액세스 시간:
오늘날 DRAM 및 SDRAM의 고속, 및 미래의 DDR-SDRAMS인 경우 훨씬 고속일 가능성에 따라, 버스 로드는 MM 설계시 매우 주의깊게 고려되어야 한다. 메모리 액세스 시간 tac는 또한 배제될 수 없는 매우 중요한 매개 변수이다.
바사바 메모리 모듈 상의 버스 격리인 경우, 버스 스위치(크로스바아)가 사용될 것이다. 이는 최대 0.25㎱의 전달 지연 만을 유입하면서 PC의 메모리 버스에의 스위치 가능한 접속을 허용한다. 이 형태의 스위치는 4에서 8㎊까지의 캐패시턴스를 그들이 접속되는 라인의 어디든지 부가하여, MM의 설계는 구동 로직에 대한 규격 내에 적당히 이루어지는 것이 중요할 것이다.
모듈-대-모듈 통신:
DSP를 포함하는 다중 MM이 한 시스템에 놓이면, DSP가 또 다른 것과 통신할 수 있다는 것이 장점일 수 있다. 이러한 목적을 위하여 분리 커넥터가 정의될 수 있는 경우, 이러한 목적을 위하여 마더보드 접속 핀이 DIMM 모듈에 할당하는 것이 필요하지 않다.
인터페이스 버스는 2 또는 3 와이어로 구성될 것이다. 모든 DSP가 주/종 관계를 정의해야 하는 것 없이 또 다른 것과 통신하게 하는 프로토콜이 정의될 것이다. 이 개념에 대한 실제 세부사항이 바로 정의될 것이다. 도 34는 이 개념을 도시한다.
IREQ 및 WAIT 신호의 구현 결론:
다음표는 상기 5개의 옵션을 요약한다.
n=메모리 뱅크의 총수. 메모리 모듈은 2 뱅크를 갖는 것으로 가정된다.
옵션 1이 MM 설계인 경우 훨씬 용이하더라도, 이는 하이 DIMM 및 메모리 제어기 핀아웃을 수반한다.
옵션 2는 1+n 제어기 핀들 만을 사용하면서 범용성과 핀들 간에 최상의 트레이드-오프(trade-off)인 관계가 있으며, 대기 기능인 경우 MM으로부터 풀 피트백을 허용한다. 옵션 3은 하나씩 DIMM 핀 및 제어기 핀을 쪼개지만, 복잡한 프로토콜을 필요로 한다. 옵션 4는 구현하기 훨씬 용이하고 옵션 3으로서 동일한 로우 핀아웃을 자랑한다. 그러나, 옵션 4는 SDRAM으로의 DSP 액세스를 제한한다. 옵션 5는, MM의 핀이 단락 공급이면 사용될 것이다. 옵션 5는 SDRAM 또는 DDR-SDRAM 동작 만을 지원한다. 옵션 6은 어떠한 핀도 DIMM 상에서 사용될 수 없으면 최종 수단으로서만 사용될 것이다.
구현 실시예
도 12는 전형적인 컴퓨터 아키텍쳐의 DSP/메모리 모듈(40)을 도시한다. 도 1에 도시된 소자 이외에, 부수적인 캐쉬(90), 키보드 제어기(91) 및 외부 AFE(아날로그 프론트 엔드)가 도시되어 있다. 아날로그 프론트 엔드는 DSP/메모리 모듈(40) 상의 CODEC(84)에 접속하여 음성 데이터 또는 비디오 데이터와 같은 외부 데이터를 수신하는데 사용될 수 있다. 전형적 메모리 확장 모듈(26)은 메모리 버스(24)에 대해 하나의 커넥터 만을 갖는다. 그러나, 이 경우에, DSP(56)에 의해 외부 장치로의 직접 액세스를 지원하기 위해, AFE(94)가 제공된다. AFE(94)는, 표준 SIMM과의 호환을 유지하면서 기판(46)(도 2를 참조함)의 다른 측상의 커넥터에 연결하여 DSP와 연결되고 직접 메모리 액세스를 사용하여 통신한다. 이 AFE는 사운드, 모뎀, 무선 응용기기를 지원한다.
DSP/메모리 모듈(40)은 멀티미디어 피쳐의 속도를 증가시키고 MPU(12) 상의 로드를 감소시키는 많은 응용기기에 사용될 수 있다. 제1 실시예에서, 모뎀 정보는 전화로부터 CODEC(84)로 나올 수 있다. 로컬 SRAM(58)을 사용하여, DSP(56)는 데이터를 변환하고 이를 공유 메모리(54)에 놓는다. 그 다음 MPU(12)는 공유 메모리(54)로부터 변환된 데이터를 수신한다. 이는 다른 점에서 MPU(12)의 많은 명령 사이클을 필요로 하나, DSP/메모리 모듈(40)을 사용하여 매우 적은 MPU 상호작용으로 실현될 수 있는 응용예이다.
제2 실시예에서, MPU(12)는 오디오 또는 비디오를 압축한 DVD(디지털 범용 디스크) 상에 파일을 오픈한다. MPU(12)는 공유 메모리(54)로 직접 데이터를 통과시키고 DSP(56)가 데이터를 해제하도록 명령한다. 데이터가 해제되었기 때문에, 이는 공유 메모리로 복원되는데, 여기서 MPU(12)는 해제된 데이터를 검색하고 데이터를 디스플레이용 비디오/그래픽 카드의 프레임 버퍼에 통과시킨다. 이는, 데이터가 ISA 버스(32) 또는 PCI 버스(28)를 통과해야 하면 과도한 대역폭을 필요로 하나, 보다 고속인 메모리 버스(24) 및 DSP/메모리 모듈(40)을 사용하여 고속으로 실현될 수 있는 응용예이다.
제3 실시예는 DSP/메모리 모듈(40)을 사용하여 파형 테이블 합성을 수행한다. 이 실시예에서, 일반적으로 큰 메모리를 필요로 하는 공유 메모리(54)는 파형 테이블을 저장하는데 사용할 수 있다. 일반적으로, 분리 카드는 파형 테이블 데이터(전형적으로 2 또는 4Mbytes과 유사함)를 저장하기 위한 그 자체 메모리에 따라 필요하게 된다. 따라서, DSP/메모리 모듈(40)은 주 메모리를 사용하여 파형 테이블 시스템을 수행함으로써 시스템 비용을 절감한다.
도 13은 AFE 카드(96)가 PCI 버스(28)에 접속되는 도 12의 컴퓨터 시스템의 변화를 도시한다. AFE 카드(96)는 CODEC를 포함하고 라인-인/아웃, 마이크로폰 입력, 전화선 또는 셀룰러 접속과 같은 외부 아날로그원에의 접속을 제공한다. 이 구현에서, AFE 카드(96)는, ISA 버스는 갖지 않는, PCI 버스가 버스 마스터링 능력을 갖기 때문에, DSP/메모리 모듈(40)에 직접 데이터를 송신한다.
외부 아날로그원에의 접속을 제공하는 것 이외에, AFE 카드(96)는 상당히 고속으로 DSP/메모리 모듈(40) 상의 상태 레지스터를 폴링할 수 있다(폴링이, 태스크가 DSP/메모리 모듈(40)에 의해 완료되었는가의 여부를 판정하는데 필요한 경우). 오늘날 프로세서에 따르면, 폴링은 최적 성능을 위해 20㎳에 유사한 간격으로 수행되어야 한다. PCI 버스에 있는 카드는 보다 큰 속도로, 성능의 저하 없이 5㎳ 미만으로 DSP/메모리 모듈(40)을 폴링할 수 있다.
본 발명은 종래 기술에 비해 큰 장점을 제공한다. 증가된 기능을 인에이블링 하기 위해 디지털 신호 프로세서를 컴퓨터 시스템에 부가하는 것은 MPU의 메모리를 확장하는 것 만큼 용이하다. 메모리 모듈은 SIMM(single in-line memory module: 단일 인-라인 메모리 모듈) 또는 DIMM(dual in-line memory module: 듀얼 인-라인 메모리 모듈) 폼 팩터와 같이, IEEE, JEDEC 등과 같은 협회에 의해 표준화된 형태의 폼 팩터를 사용할 수 있다.
다른 응용은 국부적 실행을 위해 MPU에 의해 메모리 모듈로 다운로드될 수 있다. 따라서, 메모리 모듈은 다중 기능, 즉 MPU의 소프트웨어 제어 하에 다운로드 가능한 다중 기능을 지원한다.
DSP/메모리 모듈은 임의의 소정의 시간과 기술로 MPU와 코프로세서 간의 가능한 가장 높은 대역폭을 제공한다. DSP/메모리 모듈은, PC(개인용 컴퓨터), PDA용 버스-독립, 및 호스트-독립이다.
DSP/메모리 모듈은 다수의 멀티미디어 기능을 통해 시스템 메모리를 공유함으로써 시스템 비용을 감소시킨다.
모듈은 컴퓨터 시스템의 처리 능력을 용이하게 확장하기 위한 프레임워크(framework)를 제공하는데, 기존의 단일 프로세서 시스템은 메모리 모듈을 간단히 부가함으로써 확장 가능한 다중처리 시스템으로 변형될 수 있다.
사용자는 새롭고 부가가치 기능을 얻고 제공하기 위해 그 제품 플랫폼을 바꿀 필요가 없다. DSP/메모리 모듈 및 소프트웨어를 부가하는 것은 사용자가 그 컴퓨터의 성능을 향상시킬 수 있다.
DSP/메모리 모듈(40)이 각 모듈 상에 단일 DSP를 갖는 것으로 도시되었지면, 다수의 DSP가 제공될 수 있다. 부수적으로, DSP/메모리 모듈(40)은 각 메모리 뱅크(50)에 사용되어 MPU(12)의 제어 하에 다수의 DSP(54)를 제공할 수 있다.
본 발명의 상세한 설명이 임의의 예시적인 실시예에 관한 것이었지만, 대체적인 실시예뿐만 아니라 이들 실시예들의 다양한 수정이 기술 분야에 숙련자에 의해 이루어질 수 있다. 본 발명은 특허 청구범위의 범위 내에 속하는 임의의 수정 또는 대체적인 실시예를 내포한다.
도 1은 종래의 컴퓨터 아키텍처를 도시한 도면.
도 2는 DSP/메모리 모듈을 도시한 도면.
도 3은 시스템 MPU와 DSP/메모리 모듈 상의 DSP 간의 메모리 공간의 구성을 도시한 도면.
도 4a, 4b, 4c 및 4d는 DSP/메모리 모듈의 동작을 제어하는데 사용된 제어 워드의 정의를 도시한 도면.
도 5는 DSP/메모리 모듈이 컴퓨터의 주 메모리에 배치되어 있는지의 여부를 판정하기 위한 탐색 프로토콜(hunting protocol)의 동작을 도시한 플로우차트.
도 6은 표준 모드에서의 메모리 맵을 도시한 도면.
도 7은 스마트-로컬 모드(smart-local)에서의 메모리 맵을 도시한 도면.
도 8은 스마트-공유 모드(smart-shared)에서의 메모리 맵을 도시한 도면.
도 9는 DSP/메모리 모듈의 제1 실시예를 도시한 도면.
도 10은 DSP/메모리 모듈의 제2 실시예를 도시한 도면.
도 11은 DSP/메모리 모듈의 제3 실시예를 도시한 도면.
도 12는 모듈에 직접 접속된 아날로그 프론트 엔드를 사용하는 컴퓨터 시스템의 DSP/메모리 모듈을 도시한 도면.
도 13은 로컬 버스 카드를 거쳐 메모리 모듈에 결합된 아날로그 프론트 엔드를 사용하는 컴퓨터 시스템의 DSP/메모리 모듈을 도시한 도면.
도 14는 "IREQ와 WAIT 신호의 구현: 옵션 1"에서 설명된 바와 같은 메모리 모듈 대 호스트 제어기 블록도.
도 15는 "IREQ와 WAIT 신호의 구현: 옵션 1"에서 설명된 바와 같은 FPM 또는 EDO DRAM을 위한 WAIT 신호에 대한 타이밍도.
도 16은 "IREQ와 WAIT 신호의 구현: 옵션 1"에서 설명된 바와 같이, 유자격(eligibility) 옵션 1, DDR-S/S DRAM을 위한 WAIT 신호에 대한 타이밍도.
도 17은 "IREQ와 WAIT 신호의 구현: 옵션 1"에 설명된 바와 같이, 유자격 옵션 2, DDR-S/S DRAM을 위한 WAIT 신호에 대한 타이밍도.
도 18은 "IREQ와 WAIT 신호의 구현: 옵션 1"에 설명된 바와 같이, 유자격 옵션 3, DDR-S/S DRAM을 위한 WAIT에 대한 타이밍도.
도 19는 "IREQ와 WAIT 신호의 구현: 옵션 2"에 설명된 바와 같은 메모리 모듈 대 호스트 제어기 블록도.
도 20은 "IREQ와 WAIT 신호의 구현: 옵션 2"에 설명된 바와 같은 FPM 또는 EDO DRAM을 위한 WAIT 신호에 대한 타이밍도.
도 21은 "IREQ와 WAIT 신호의 구현: 옵션 2"에 설명된 바와 같이, 유자격 옵션 1, DDR-S/S DRAM을 위한 WAIT 신호에 대한 타이밍도.
도 22는 "IREQ와 WAIT 신호의 구현: 옵션 2"에 설명된 바와 같이, 유자격 옵션 2, DDR-S/S DRAM을 위한 WAIT 신호에 대한 타이밍도.
도 23은 "IREQ와 WAIT 신호의 구현: 옵션 2"에 설명된 바와 같이, 유자격 옵션 3, DDR-S/S DRAM을 위한 WAIT 신호에 대한 타이밍도.
도 24는 "IREQ와 WAIT 신호의 구현: 옵션 3"에 설명된 바와 같은 메모리 모듈 대 호스트 제어기 블록도.
도 25는 "IREQ와 WAIT 신호의 구현: 옵션 3"에 설명된 바와 같은 FPM 또는 EDO DRAM을 위한 WAIT 및 IREQ 신호에 대한 타이밍도.
도 26은 "IREQ와 WAIT 신호의 구현: 옵션 3"에 설명된 바와 같이, 유자격 옵션 1, DDR-S/S DRAM을 위한 WAIT 및 IREQ 신호에 대한 타이밍도.
도 27은 "IREQ와 WAIT 신호의 구현: 옵션 3"에 설명된 바와 같이, 유자격 옵션 2, DDR-S/S DRAM을 위한 WAIT 및 IREQ 신호에 대한 타이밍도.
도 28은 "IREQ와 WAIT 신호의 구현: 옵션 3"에 설명된 바와 같이, 유자격 옵션 3, DDR-S/S DRAM을 위한 WAIT 및 IREQ 신호에 대한 타이밍도.
도 29는 "IREQ와 WAIT 신호의 구현: 옵션 4"에 설명된 바와 같은 메모리 모듈 대 호스트 제어기 블록도.
도 30은 "IREQ와 WAIT 신호의 구현: 옵션 5"에 설명된 바와 같은 메모리 모듈 대 호스트 제어기 블록도.
도 31은 "IREQ와 WAIT 신호의 구현: 옵션 5"에 설명된 바와 같이, 유자격 옵션 1, DDR-S/S DRAM을 위한 WAIT 및 IREQ 신호에 대한 타이밍도.
도 32는 "IREQ와 WAIT 신호의 구현: 옵션 5"에 설명된 바와 같이, 유자격 옵션 2, DDR-S/S DRAM을 위한 WAIT 및 IREQ 신호에 대한 타이밍도.
도 33은 "IREQ와 WAIT 신호의 구현: 옵션 5"에 설명된 바와 같이, 유자격 옵션 3, DDR-S/S DRAM을 위한 WAIT 및 IREQ 신호에 대한 타이밍도.
도 34는 2 와이어 버스를 거쳐 모듈-대-모듈 통신을 위하여 가능한 솔루션을 도시한 도면.
<도면의 주요 부분에 대한 부호의 설명>
12: MPU
40: DSP/메모리 모듈
42: 메모리 회로
44: DSP 회로
46: 기판
50: 뱅크
52: 제어 레지스터
54: 공유 메모리
56: DSP
58: 로컬 메모리

Claims (15)

  1. 컴퓨터 시스템으로서,
    시스템 처리 회로; 및
    상기 시스템 처리 회로에 결합된 프로세서/메모리 모듈
    을 포함하고,
    상기 프로세서/메모리 모듈은,
    반도체 메모리;
    상기 반도체 메모리에 결합된 프로세서; 및
    상기 시스템 처리 회로와 상기 프로세서 간의 통신을 제공하여, 상기 시스템 처리 회로가 주 메모리로서 상기 반도체 메모리에 액세스할 수 있고, 상기 시스템 처리 회로가 상기 프로세서가 데이터를 변환하여 상기 시스템 처리 회로에 의한 액세스를 위해 변환된 데이터를 상기 반도체 메모리에 저장하도록 상기 프로세서에 명령할 수 있도록 하는 제어 회로
    를 포함하고,
    상기 반도체 메모리 및 상기 프로세서는 공통의 기판 상에 형성되는
    것을 특징으로 하는 컴퓨터 시스템.
  2. 제1항에 있어서,
    상기 프로세서는 프로그램 가능한 범용 프로세서를 포함하는 것을 특징으로 하는 컴퓨터 시스템.
  3. 제1항에 있어서,
    상기 프로세서는 디지털 신호 프로세서를 포함하는 것을 특징으로 하는 컴퓨터 시스템.
  4. 제1항에 있어서,
    상기 프로세서/메모리 모듈은 상기 프로세서에 결합되는, 데이터 및 명령을 저장하기 위한 로컬 메모리를 더 포함하는 것을 특징으로 하는 컴퓨터 시스템.
  5. 제1항에 있어서,
    상기 시스템 처리 회로가, 선정된 횟수 동안 시그너쳐 데이터를 메모리 위치에 연속해서 기록하고 상기 위치에 저장되어 있는 데이터를 판독하여 예상된 응답에 매칭되는지 여부를 조사함으로써, 프로세서/메모리 모듈이 상기 시스템에 설치되어 있는지 여부를 판정하는 것을 특징으로 하는 컴퓨터 시스템.
  6. 제5항에 있어서,
    상기 예상된 응답은 시그너쳐 데이터의 보수(complement)인 것을 특징으로 하는 컴퓨터 시스템.
  7. 제5항에 있어서,
    상기 메모리 위치는 현재의 판독 위치이고,
    상기 현재의 판독 위치로부터 판독된 데이터가 상기 예상된 응답에 매칭되지 않으면 메모리의 다음 위치를 더 판독하는 것을 특징으로 하는 컴퓨터 시스템.
  8. 제7항에 있어서,
    상기 다음 위치에 대한 판독은 판독될 더 이상의 위치가 존재하지 않거나 상기 예상된 응답이 판독될 때까지 반복하여 수행되는 것을 특징으로 하는 컴퓨터 시스템.
  9. 제1항에 있어서,
    상기 프로세서/메모리 모듈이 상기 시스템 처리 회로와 통신하기 위한 연관된 어드레스 범위를 갖는 것을 특징으로 하는 컴퓨터 시스템.
  10. 컴퓨터 시스템으로서,
    주 프로세서 및 상기 주 프로세서에 결합된 표준 메모리 모듈들을 위한 메모리 버스를 포함하는 시스템 처리 회로; 및
    상기 메모리 버스를 통하여 상기 주 프로세서에 결합되는 프로세서/메모리 모듈 - 상기 프로세서/메모리 모듈은 상기 시스템 처리 회로 내의 상기 메모리 버스를 위한 표준 메모리 슬롯에 맞도록 조정된 표준 메모리 모듈로서 구성됨 -
    을 포함하고,
    상기 프로세서/메모리 모듈은,
    반도체 메모리;
    상기 반도체 메모리에 결합된 하나 이상의 로컬 프로세서; 및
    메모리 어드레스에 의해 상기 시스템 처리 회로 내의 상기 주 프로세서와 상기 프로세서/메모리 모듈 내의 하나 이상의 로컬 프로세서 사이의 통신을 제공하여, 상기 시스템 처리 회로가 상기 반도체 메모리에 액세스할 수 있도록 하고, 상기 시스템 처리 회로가 상기 하나 이상의 로컬 프로세서가 데이터를 변환하여 상기 시스템 처리 회로에 의한 액세스를 위해 변환된 데이터를 상기 반도체 메모리에 저장하도록 상기 하나 이상의 로컬 프로세서에 명령할 수 있도록 하며, 상기 주 프로세서에 의해 액세스될 때 상기 하나 이상의 로컬 프로세서가 상기 반도체 메모리로의 액세스를 포기하도록 하는 제어 회로
    를 포함하는 것을 특징으로 하는 컴퓨터 시스템.
  11. 제10항에 있어서, 상기 프로세서/메모리 모듈은, 상기 하나 이상의 로컬 프로세서에 결합되어, 데이터 및 명령을 저장하기 위한 로컬 메모리를 더 포함하는 것을 특징으로 하는 컴퓨터 시스템.
  12. 제10항에 있어서, 상기 제어 회로는 상기 하나 이상의 로컬 프로세서 및 상기 시스템 처리 회로로부터 상기 반도체 메모리에의 액세스를 스위칭하기 위한 스위치를 더 포함하고, 상기 스위치는 상기 주 프로세서가 액세스를 요구할 때 상기 하나 이상의 로컬 프로세서로 하여금 상기 반도체 메모리로의 액세스를 포기하도록 하는 것을 특징으로 하는 컴퓨터 시스템.
  13. 컴퓨터 시스템으로서,
    주 프로세서를 포함하는 시스템 처리 회로; 및
    상기 시스템 처리 회로에 결합된 프로세서/메모리 모듈
    을 포함하고,
    상기 프로세서/메모리 모듈은,
    반도체 메모리;
    상기 반도체 메모리에 결합된 하나 이상의 로컬 프로세서; 및
    상기 시스템 처리 회로 및 상기 모듈 사이의 통신을 제공하여, 상기 프로세서/메모리 모듈의 제1 표준 모드에서는 상기 주 프로세서가 전체 메모리를 표준 메모리로서 액세스하고, 제2 모드에서는 상기 주 프로세서가 제어 레지스터에 기록함으로써 상기 로컬 프로세서의 기능을 제어하고 공유된 메모리를 통하여 상기 로컬 프로세서로/로컬 프로세서로부터 데이터를 전송할 수 있으며, 구성 모드인 제3 모드에서는 상기 주 프로세서가 메모리 공간에 있는 인덱스 및 데이터 레지스터를 통하여 상기 제어 레지스터 및 공유된 메모리에 액세스할 수 있도록 하는 제어 회로
    를 포함하는 것을 특징으로 하는 컴퓨터 시스템.
  14. 제13항에 있어서, 제1 구성 모드는 상기 주 프로세서가 상기 모듈 내의 사용 가능한 메모리의 크기, 상기 로컬 메모리의 크기 및 사용 가능한 로컬 프로세서의 유형을 포함하는 모듈 정보 구조를 판독할 수 있도록 하고, 제2 구성 모드에서는 상기 제어 레지스터와 상기 공유된 메모리의 기저 어드레스를 상기 모듈의 경계 내의 소정의 어드레스 위치로 재배치하도록 할 수 있도록 하는 것을 특징으로 하는 컴퓨터 시스템.
  15. 컴퓨터 시스템으로서,
    시스템 처리 회로; 및
    상기 시스템 처리 회로에 결합된 복수의 프로세서/메모리 모듈들
    을 포함하고,
    상기 복수의 프로세서/메모리 모듈들은,
    반도체 메모리;
    상기 반도체 메모리에 결합된 상기 모듈들 상의 하나 이상의 로컬 프로세서; 및
    상기 시스템 처리 회로 및 상기 하나 이상의 로컬 프로세서 사이의 통신을 제공하여, 상기 시스템 처리 회로가 상기 반도체 메모리를 주 메모리로서 액세스할 수 있고, 상기 시스템 처리 회로가 상기 하나 이상의 로컬 프로세서가 데이터를 변환하여 상기 시스템 처리 회로에 의한 액세스를 위해 변환된 데이터를 상기 반도체 메모리에 저장하도록 상기 프로세서에 명령할 수 있도록 하는 제어 회로
    를 포함하며,
    상기 컴퓨터 시스템은 상기 복수의 프로세서/메모리 모듈들을 직접적으로 상호 연결하여 상기 로컬 프로세서가 서로 통신할 수 있도록 하기 위한 수단을 더 포함하는 것
    을 특징으로 하는 컴퓨터 시스템.
KR1019980012747A 1997-04-11 1998-04-10 프로세서/메모리 모듈을 갖는 컴퓨터 시스템 KR100589564B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US4366397P 1997-04-11 1997-04-11
US60/043,663 1997-04-11
US4995697P 1997-06-17 1997-06-17
US60/049,956 1997-06-17

Publications (2)

Publication Number Publication Date
KR19980081282A KR19980081282A (ko) 1998-11-25
KR100589564B1 true KR100589564B1 (ko) 2006-08-30

Family

ID=26720686

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980012747A KR100589564B1 (ko) 1997-04-11 1998-04-10 프로세서/메모리 모듈을 갖는 컴퓨터 시스템

Country Status (4)

Country Link
US (2) US6185704B1 (ko)
JP (1) JPH10289151A (ko)
KR (1) KR100589564B1 (ko)
TW (1) TW455764B (ko)

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10232788A (ja) * 1996-12-17 1998-09-02 Fujitsu Ltd 信号処理装置及びソフトウェア
US6965974B1 (en) * 1997-11-14 2005-11-15 Agere Systems Inc. Dynamic partitioning of memory banks among multiple agents
ITMI981564A1 (it) * 1998-07-09 2000-01-09 St Microelectronics Srl Memoria non volatile in grado di eseguire un programma autonomamente
US6590907B1 (en) * 1999-10-01 2003-07-08 Stmicroelectronics Ltd. Integrated circuit with additional ports
KR100769557B1 (ko) * 1999-11-24 2007-10-23 엔엑스피 비 브이 데이터 처리 시스템 및 데이터 처리 유닛
US20060206874A1 (en) * 2000-08-30 2006-09-14 Klein Dean A System and method for determining the cacheability of code at the time of compiling
US6785780B1 (en) * 2000-08-31 2004-08-31 Micron Technology, Inc. Distributed processor memory module and method
JP4451558B2 (ja) * 2000-09-26 2010-04-14 株式会社リコー Dsp信号処理装置を使用したモデム
JP2002108691A (ja) * 2000-09-29 2002-04-12 Mitsubishi Electric Corp 半導体記憶装置および半導体記憶装置の制御方法
US6609179B1 (en) * 2001-01-24 2003-08-19 Matsushita Electric Industrial Co., Ltd. Method and apparatus for controlling memory access
ATE521040T1 (de) 2001-06-11 2011-09-15 Zoran Microelectronics Ltd Ein spezialspeichergerät
JP2003060743A (ja) * 2001-08-16 2003-02-28 Inter Communications:Kk 携帯端末用simmソケット及びこれを利用した情報送受信システム
TWI280755B (en) * 2002-04-15 2007-05-01 Interdigital Tech Corp Wireless user equipments
JP4222803B2 (ja) * 2002-09-11 2009-02-12 Necエレクトロニクス株式会社 データ処理装置およびデータ処理回路
US6982892B2 (en) * 2003-05-08 2006-01-03 Micron Technology, Inc. Apparatus and methods for a physical layout of simultaneously sub-accessible memory modules
US7917673B2 (en) * 2003-09-20 2011-03-29 Samsung Electronics Co., Ltd. Communication device and method having a shared local memory
US20050160207A1 (en) * 2004-01-16 2005-07-21 Universal Scientific Industrial Co., Ltd. Computing apparatus including a hardware management add-on card
US7283503B1 (en) * 2005-06-24 2007-10-16 Silicon Laboratories, Inc. Communication apparatus including a buffer circuit having first and second portions for alternately storing results
JP2007011580A (ja) * 2005-06-29 2007-01-18 Toshiba Corp 情報処理装置
KR20070105761A (ko) * 2006-04-27 2007-10-31 엠텍비젼 주식회사 데이터 처리 기능을 구비한 메모리 장치 및 그 데이터 처리방법
US7761626B2 (en) * 2006-09-28 2010-07-20 Virident Systems, Inc. Methods for main memory in a system with a memory controller configured to control access to non-volatile memory, and related technologies
US8074022B2 (en) 2006-09-28 2011-12-06 Virident Systems, Inc. Programmable heterogeneous memory controllers for main memory with different memory modules
US7761623B2 (en) * 2006-09-28 2010-07-20 Virident Systems, Inc. Main memory in a system with a memory controller configured to control access to non-volatile memory, and related technologies
US7761624B2 (en) * 2006-09-28 2010-07-20 Virident Systems, Inc. Systems and apparatus for main memory with non-volatile type memory modules, and related technologies
US7761625B2 (en) * 2006-09-28 2010-07-20 Virident Systems, Inc. Methods for main memory with non-volatile type memory modules, and related technologies
US20080082750A1 (en) * 2006-09-28 2008-04-03 Okin Kenneth A Methods of communicating to, memory modules in a memory channel
US9984012B2 (en) 2006-09-28 2018-05-29 Virident Systems, Llc Read writeable randomly accessible non-volatile memory modules
WO2008040028A2 (en) * 2006-09-28 2008-04-03 Virident Systems, Inc. Systems, methods, and apparatus with programmable memory control for heterogeneous main memory
US8949555B1 (en) 2007-08-30 2015-02-03 Virident Systems, Inc. Methods for sustained read and write performance with non-volatile memory
WO2008051940A2 (en) * 2006-10-23 2008-05-02 Virident Systems, Inc. Methods and apparatus of dual inline memory modules for flash memory
US9921896B2 (en) 2007-08-30 2018-03-20 Virident Systems, Llc Shutdowns and data recovery to avoid read errors weak pages in a non-volatile memory system
US8856464B2 (en) * 2008-02-12 2014-10-07 Virident Systems, Inc. Systems for two-dimensional main memory including memory modules with read-writeable non-volatile memory devices
WO2009102821A2 (en) * 2008-02-12 2009-08-20 Virident Systems, Inc. Methods and apparatus for two-dimensional main memory
US20090238263A1 (en) * 2008-03-20 2009-09-24 Pawan Jaggi Flexible field based energy efficient multimedia processor architecture and method
US9513695B2 (en) 2008-06-24 2016-12-06 Virident Systems, Inc. Methods of managing power in network computer systems
US8417873B1 (en) 2008-06-24 2013-04-09 Virident Systems, Inc. Random read and read/write block accessible memory
TWI425364B (zh) * 2010-06-22 2014-02-01 Mstar Semiconductor Inc 記憶體共享系統及方法
JP4937388B2 (ja) * 2010-08-09 2012-05-23 ルネサスエレクトロニクス株式会社 半導体記憶装置およびメモリ制御システム
TWI498907B (zh) * 2013-01-07 2015-09-01 Phison Electronics Corp 連接器的控制方法、連接器與記憶體儲存裝置
US20210373790A1 (en) * 2020-05-26 2021-12-02 Qualcomm Incorporated Inference in memory

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63269238A (ja) * 1987-04-28 1988-11-07 Japan Electronic Control Syst Co Ltd コントロ−ルユニツトの検査装置
US5163133A (en) * 1987-02-17 1992-11-10 Sam Technology, Inc. Parallel processing system having a broadcast, result, and instruction bus for transmitting, receiving and controlling the computation of data
US5274760A (en) * 1991-12-24 1993-12-28 International Business Machines Corporation Extendable multiple image-buffer for graphics systems
US5500828A (en) * 1993-05-28 1996-03-19 Texas Instruments Incorporated Apparatus, system and methods for distributed signal processing
US5638530A (en) * 1993-04-20 1997-06-10 Texas Instruments Incorporated Direct memory access scheme using memory with an integrated processor having communication with external devices

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5043984A (en) * 1987-04-14 1991-08-27 Japan Electronic Control Systems Co., Ltd. Method and system for inspecting microprocessor-based unit and/or component thereof
JPH06215160A (ja) 1992-08-25 1994-08-05 Texas Instr Inc <Ti> データ処理方法および装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5163133A (en) * 1987-02-17 1992-11-10 Sam Technology, Inc. Parallel processing system having a broadcast, result, and instruction bus for transmitting, receiving and controlling the computation of data
JPS63269238A (ja) * 1987-04-28 1988-11-07 Japan Electronic Control Syst Co Ltd コントロ−ルユニツトの検査装置
US5274760A (en) * 1991-12-24 1993-12-28 International Business Machines Corporation Extendable multiple image-buffer for graphics systems
US5638530A (en) * 1993-04-20 1997-06-10 Texas Instruments Incorporated Direct memory access scheme using memory with an integrated processor having communication with external devices
US5500828A (en) * 1993-05-28 1996-03-19 Texas Instruments Incorporated Apparatus, system and methods for distributed signal processing

Also Published As

Publication number Publication date
KR19980081282A (ko) 1998-11-25
JPH10289151A (ja) 1998-10-27
US6185704B1 (en) 2001-02-06
TW455764B (en) 2001-09-21
US6584588B1 (en) 2003-06-24

Similar Documents

Publication Publication Date Title
KR100589564B1 (ko) 프로세서/메모리 모듈을 갖는 컴퓨터 시스템
US7411859B2 (en) Multi-port memory device for buffering between hosts
US8499127B2 (en) Memory hub with internal cache and/or memory access prediction
US6178517B1 (en) High bandwidth DRAM with low operating power modes
US7254067B2 (en) Memory device and method having low-power, high write latency mode and high-power, low write latency mode and/or independently selectable write latency
MX2008014859A (es) Dispositivo de memoria hibrida con interfase individual.
KR100847968B1 (ko) 컴퓨팅 시스템, 전자 통신 디바이스, 컴퓨팅 시스템 운영 방법 및 정보 처리 방법
JP2001516118A (ja) 短待ち時間dramセルおよびその方法
WO2010101835A1 (en) Decoupled memory modules: building high-bandwidth memory systems from low-speed dynamic random access memory devices
US6782466B1 (en) Arrangement and method for accessing data in a virtual memory arrangement
US6002632A (en) Circuits, systems, and methods with a memory interface for augmenting precharge control
KR970059914A (ko) 플래시 메모리 시스템
US7065639B2 (en) Utilization of SRAM in an execution of initialization code process upon system start up
JP4015160B2 (ja) プロセッサ、半導体装置及びメモリコントローラ
JP3866259B2 (ja) プロセッサ
JP4073947B2 (ja) プロセッサシステム
JP3447835B2 (ja) Ramチップ識別方式
KR100368085B1 (ko) 신호 처리 소자를 갖는 메모리 카드
JPH08335193A (ja) 情報処理装置
KR20020045305A (ko) 중앙 처리 장치의 고성능 처리를 위한 메모리 주소 맵핑회로
KR20090095842A (ko) 메모리 복사 방법 및 그 방법을 이용하는 컴퓨터 시스템
KR19980050665U (ko) 개인용 컴퓨터 메모리 카드의 메모리 확장 장치
JPH02123450A (ja) 情報処理システム
KR19990048634A (ko) 마이크로컴퓨터의 시스템버스를 이용한 주변 입출력기기 접속장치
JP2002260385A (ja) 半導体記憶装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130531

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20140529

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20160330

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20170330

Year of fee payment: 12

EXPY Expiration of term