다음에 첨부 도면을 참조하여 본 발명의 실시예를 설명한다.
[본 발명의 제1 형태]
본 발명의 원리(제1 형태)를 먼저 설명한다.
도 1은 본 발명의 원리(제1 형태)를 설명하기 위한 도면이다. 도 1은 2 포트인 경우의 원리를 설명하기 위한 도면이지만, 2 이상의 포트(N 개의 포트)가 설치되더라도 동일한 동작을 얻을 수 있다.
2회 주기의 내부 회로(DRAM 코어) 동작과 같은 시간 스팬이 1회 주기의 외부 명령 주기로서 정의된다. 즉, 코어 동작의 주기는 외부 명령 주기의 속도의 두 배가 된다. A 포트와 B 포트에 입력된 명령은 명령이 일찍 도달하면 그 명령을 일찍 처리하는 순서가 되도록 내부 메모리에 의하여 배속으로 처리된다. 이어서, 출력 데이터는 각 포트에 통과된다. 즉, 워드선의 선택, 데이터의 증폭, 열 선의 선택, 판독 또는 기록 동작, 및 프리챠지 동작을 비롯한 이련의 동작은 1회의 코어 동작 주기로 수행되어, 해당 메모리 블록에 대하여 액세스 동작을 완료한다.
예컨대, 어떤 Read 명령은 도 1의 A 포트에 해당하는 외부 명령 주기의 타이밍(C1)으로 A 포트에 입력된다. 또한, 어떤 Read 명령은 B 포트에 해당하는 외부 명령 주기의 타이밍(C1)으로 B 포트에 입력된다. A 포트의 Read 명령의 타이밍은 조금 더 빠르기 때문에, 이 Read 명령은 B 포트에 입력된 Read 명령에 앞서 수행된다. 여기에서, 1회의 외부 명령 주기는 4회의 클록 주기에 상당한다. 도 1에 도시한 바와 같이, 각 Read 주기는 1회의 코어 동작 주기에 상당하는 2회의 클록 주기로 실행되어 완료된다. 따라서, 1회의 외부 명령 주기에 해당하는 4회의 클록 주기의 기간에 A 포트와 B 포트에 입력된 Read 명령에 응답하여, A 포트로부터의 판독 액세스와 B 포트로부터의 판독 액세스가 동일한 블록으로 향하더라도 BUSY 상태를 발생하지 않으면 수행될 수 있다. 이것은 각 액세스를 2회의 클록 주기로 수행하여 완료함으로써 달성된다.
이와 같이 하여, 동일한 메모리 블록이 복수 개의 포트에 의하여 동시에 액세스되더라도, 내부 메모리를 배속으로 연이은 연속 처리를 할 수 있기 때문에 BUSY 상태는 발생되지 않는다.
또한, (예컨대, A 포트의) 장치의 외부로부터 리프레시 명령이 생기는 경우에, 도 1에 도시한 바와 같이, 리프레시 동작은 다른 포트(예컨대, 이 예에서는 B 포트)로부터의 액세스에 영향을 미치지 않는 채 장치의 내부에서 수행될 수 있다. 이 경우에, 복수 개의 포트 중 하나의 포트(즉, 도 1의 예의 A 포트)는 리프레시 관리를 하는 포트로서 선택될 수 있고, 리프레시 명령은 항상 이 포트로부터 입력될 수 있다.
더욱이, 데이터 출력은 복수 개의 열 어드레스의 형태로부터 데이터를 병렬로 판독하고 그 병렬 데이터를 출력시에 직렬 데이터로 변환하여 데이터를 출력하는 버스트 타입의 형태를 취할 수 있다. 이로써, 데이터 전송 속도가 증가하고, 연속 Read 명령에 응답하여 데이터를 연속하여 출력할 수 있게 된다.
도 2는 한 개의 포트만을 사용하고 있는 경우의 리프레시 동작을 도시하는 도면이다.
도 2에 도시한 바와 같이, 두 개의 포트, 예컨대, A 포트와 B 포트가 설치되는 경우에, 양쪽 포트를 동작하게 할 필요가 없다. 장치 내부에 리프레시 타이머를 설치하면, 리프레시 명령을 내부적으로 발생할 수 있게 된다. 도 2에 도시한 바와 같이, 예컨대, 리프레시 명령은 하나의 포트(예컨대, B 포트)가 동작되고 있지 않는 경우에 내부적으로 발생될 수 있어, A 포트에서 행해지는 액세스에 영향을 미치지 않는 채 리프레시 동작을 수행한다.
이제, 리프레시 관리를 하고 있는 동안에 제어기 A는 A 포트를 제어하고 제어기 B는 B 포트를 제어하는 예에 관하여 고려해 본다. 이러한 경우에, 전술한 내부 리프레시의 기능이 존재한다면, A 포트만을 사용하고 있는 동안에 B 포트는 완전히 정지된다. 시스템 동작의 변화를 따라감으로써 전력 소모의 감소하게 된다.
도 3A 내지 도 3C는 2 포트, 3 포트 및 N 포트의 경우에 있어서 본 발명의 원리를 설명하기 위한 도면이다.
전술한 바와 같이, 본 발명은 3 이상의 포트의 다중 포트 메모리에도 적용할 수 있다. 도 3A는 도 1 및 도 2에서 2 포트가 설치되어 있는 경우의 한 쪽 포트의 동작을 도시하고 있다. 도 3B는 3 포트의 경우의 한 쪽 포트의 동작을 도시하고 있고, 도 3C는 N 포트의 경우를 도시하고 있다. 도 3C에 도시한 바와 같이, 내부 동작 주기의 길이는 N 포트 메모리의 경우에 외부 공통 주기만큼 긴 N/1로 적절히 설정될 수 있다.
이어서, 본 발명의 일 실시예에 따른 반도체 메모리 장치에 관하여 설명한다.
도 4는 본 발명에 따른 다중 포트 메모리의 제1 실시예를 도시하는 블록도이다. 이 예에서, 구성은 2 포트, 즉 A 포트와 B 포트가 설치되어 있다.
도 4의 다중 포트 메모리는 A 포트(11), B 포트(12), 자기 리프레시 회로(12), DRAM 코어(14), 중재기(15), 리프레시 명령 레지스터(16), 명령 레지스터 A(17), 명령 레지스터 B(18), 리프레시 어드레스 레지스터(19), 어드레스 레지스터 A(20), 어드레스 레지스터 B(21), 기록 데이터 레지스터 A(22), 기록 데이터 레지스터 B(23), 전송 게이트 A(24) 및 전송 게이트 B(25)를 포함하고 있다.
A 포트(11)는 모드 레지스터(31), CLK 버퍼(32), 데이터 I/O 회로(33), 어드레스 버퍼(34) 및 명령 복호기(35)를 포함하고 있다. 또한, B 포트(12)는 모드 레지스터(41), CLK 버퍼(42), 데이터 I/O 회로(43), 어드레스 버퍼(44) 및 명령 복호기(45)를 포함하고 있다. A 포트(11)와 B 포트(12)에서, 외부 버스와의 액세스는 개개의 클록 신호들(CLKA 및 CLKB)과 동기하여 독립적으로 달성된다. 모드 레지스터(31 및 41)는 개개의 포트에 대하여 데이터 지연과 버스트 길이 등의 모드 설정을 내부에 기억할 수 있다. 이 실시예에서, A 포트(11)와 B 포트(12)에는 개개의 모드 레지스터가 설치되므로, 각 포트는 모드 설정을 행할 수 있다. 그러나, 모드 레지스터는두 포트 중 하나의 포트에만 배치될 수도 있으므로, 예컨대 이 하나의 포트에 대하여 설정을 행함으로써 두 포트에 대한 설정이 행해질 수도 있다.
자기 리프레시 회로(13)는 리프레시 타이머(46)와 리프레시 명령 발생기(47)를 포함하고 있다. 자기 리프레시 회로(13)는 그 장치의 내부에서 리프레시 명령을 발생하고, A 포트(11)와 B 포트(12)로부터 각각 신호(CKEA1 및 CKEB1)를 수신한다.신호(CKEA1 및 CKEB1)는 CLK 버퍼(32 및 42)에 의해 각각 외부 신호(CKEA 및 CKEB)를 각각 버퍼링함으로써 얻은 신호이다. 외부 신호(CKEA 및 CKEB)는 개개의 포트의 클록 버퍼를 중단시키고 개개의 포트를 비활성시키는데 이용된다. A 포트(11)와 B 포트(12) 중 하나가 비활성 상태로 되면, 자기 리프레시 회로(13)는 동작을 개시한다. 두 포트 중 하나의 포트가 리프레시 관리를 담당하도록 모드 레지스터(31 및 41)에서 설정이 행해진 경우에, 자기 리프레시 회로(13)는 리프레시 관리를 담당하는 포트가 활성으로 될 때 활성될 수 있다.
또한, DRAM 코어(14)는 메모리 어레이(51), 복호기(52), 제어 회로(53), WriteAmp(54) 및 센스 버퍼(55)를 포함하고 있다. 메모리 어레이(51)는 기록되어 판독될 데이터를 내부에 기억하고 DRAM 메모리 셀, 셀 게이트 트랜지스터, 워드선, 비트선, 센스 증폭기, 열 선, 열 게이트 등을 포함하고 있다. 복호기(52)는 액세스될 어드레스를 복호화한다. 제어 회로(53)는 DRAM 코어(14)의 동작을 제어한다. WriteAmp(54)는 메모리 어레이(51)에 기록될 데이터를 증폭한다. 센스 버퍼(55)는 메모리 어레이(51)로부터 판독되는 데이터를 증폭한다.
A 포트(11)로의 입력은 어드레스 레지스터 A(20), 리프레시 명령 레지스터(16), 명령 레지스터 A(17) 및 기록-데이터 레지스터 A(22)로 전송된다. 또한, B포트(12)로의 입력은 어드레스 레지스터 B(21), 리프레시 명령 레지스터(16), 명령 레지스터 B(18) 및 기록-데이터 레지스터 B(23)로 전송된다. 중재기(중재 회로)(15)는 A 포트(11)와 B 포트(12)간에 처리할 우선 순위가 어느 명령에 주어져야 하는지를 판단하기 위하여 명령이 입력된 순서를 판단한다. 그 순서에 따라, 중재기(15)가 명령, 어드레스 및 데이터(기록 동작의 경우에)를 개개의 레지스터에서 DRAM 코어(14)로 전송하는 것이 판단된다. DRAM 코어(14)는 수신된 데이터를 기초로 하여 동작한다. Read 명령의 경우에, DRAM 코어(14)로부터 판독된 데이터는 상응하는 명령이 입력된 포트로 전달되고, 이어서 병렬 데이터에서 직렬 데이터로 변환되며, 이어서 이 포트의 클록과 동기하여 출력된다.
도 5는 중재기(15)에 입력된 명령에 관한 회로의 블록도이다.
명령 복호기(35)는 입력 버퍼(61), 명령 복호기(62) 및 (n-1)-클록-지연 회로(63)를 포함하고 있다. 더욱이, 명령 복호기(45)는 입력 버퍼(71), 명령 복호기(72) 및 (n-1)-클록-지연 회로(73)를 포함하고 있다. 명령 레지스터 A(17)는 판독-명령 레지스터(17-1)와 기록-명령 레지스터(17-2)를 포함하고 있다. 또한, 명령 레지스터 B(18)는 판독-명령 레지스터(18-1)와 기록-명령 레지스터(18-2)를 포함하고 있다.
Read 명령의 경우에, 입력 버퍼(61 또는 71)에 입력된 명령 입력은 타이밍 조작 없이 각각 명령 복호기(62 또는 72)를 통하여 판독-명령 레지스터(17-1 또는 18-1)에 전달된다. Write 명령의 경우에, 입력된 명령은 (n-1)-클록-지연 회로(63 또는 73)에 의하여 (n-1)-클록이 지연되고, 이어서 기록될 일련의 버스트 데이터의 n번째 데이터(즉, 최종 데이터)가 입력되는 타이밍에 기록-명령 레지스터(17-2 또는 18-2)에 전송된다.
리프레시 명령의 경우에, A 포트(11), B 포트(12) 또는 리프레시 명령 발생기(47)로부터 공급된 리프레시 명령은 리프레시 명령 레지스터(16)에 전송된다. 리프레시 명령의 발생은 자주 일어나지 않으므로, 복수 개의 리프레시 명령 레지스터를 설치할 필요는 없다. 또한, 리프레시 명령 발생기(47)에 입력되는 자기 리프레시 설정 정보는 모드 레지스터(31 및 41)로부터 공급되고, 두 포트 중 어느 포트가 리프레시 관리를 담당하는 지를 나타낸다.
중재기(!5)는 명령들이 개개의 명령 레지스터에 전송된 순서를 검출하고 그 명령들을 하나씩 이 순서대로 DRAM 제어 회로(53)에 전달한다.
명령을 수신할 때(또는 명령 실행의 종래시에 가까워질 때), DRAM 제어 회로(53)는 RESET1 신호를 발생하여, 중재기(15)가 다음 명령을 준비하게 한다. 이 실시예의 특정 구성에 있어서, DRAM 제어 회로(53)는 RESET1 신호가 종료될 때 다음 명령을 수신한다.
RESET1 신호의 수신시, 중재기(15)는 리셋 신호(ResetRA, ResetWA, ResetRB, ResetWB 및 ResetREF) 중 하나를 명령 레지스터 A(17), 명령 레지스터 B(18) 및 리프레시 명령 레지스터(16) 중 상응하는 것으로 공급한다. 이 동작을 통하여, DRAM 코어(14)에 전송되어 온 명령을 내부에 기억하는 명령 레지스터는 리셋되고, 이 명령 레지스터에서 다음 명령이 준비된다.
도 6a 및 도 6b는 중재기(15)의 구성을 도시하는 회로도이다.
도 6a에 도시한 바와 같이, 중재기(15)는 비교기(80-1 내지 80-10), AND 회로(81-1 내지 81-5), AND 회로(82-1 내지 82-5), AND 회로(83-1 내지 83-5), 인버터(85 내지 87), NAND 회로(88) 및 인버터(89 및 90)를 포함하고 있다. 비교기(80-1 내지 80-10)는 각각 동일한 회로 구성을 가지며, 도 6b에 도시한 바와 같이,NAND 회로(91 및 92)와 인버터(93 및 94)를 포함하고 있다.
명령 레지스터 A(17)로부터의 판독-명령 신호(RA2) 및 기록-명령 신호(WA2)와, 명령 레지스터 B(18)로부터의 판독-명령 신호(RB2) 및 기록-명령 신호(WB2), 및 리프레시 명령 레지스터(16)로부터의 리프레시 명령(REF2)은 중재기(15)로 공급된다. 5 가지의 명령 신호 중 2 가지를 선택하는 10 가지 조합 모두에 대하여, 10 개의 비교기(80-1 내지 80-10)는 명령 도달 타이밍상 어느 것이 다른 것보다 빠른가를 판단한다.
각 비교기는 두 개의 명령의 타이밍을 비교하고, 다른 입력에 앞서 HIGH를 수신한 입력에 상응하는 출력들 중 하나를 HIGH로 설정한다. 예컨대, 비교기(80-1 내지 80-4)의 각각은 어느 것이 A 포트(11)로부터의 판독-명령 신호(RA2) 또는 네 개의 다른 명령 중 상응하는 것 중 보다 빠른지를 판단한다. 만일 판독-명령 신호(RA2)가 네 개의 다른 명령 중 어느 것보다도 빠르다면, AND 회로(81-1)로부터 출력된 판독-명령 신호(RA31)는 HIGH로 설정된다. RESET1 신호가 LOW일 때, 이 판독-명령 신호(RA31)는 판독-명령 신호(RA3)으로서 중재기(15)로부터 DRAM 코어(14)에 공급된다.
DRAM 코어(14)가 명령을 수신할 때, DRAM 코어(14)는 HIGH인 RESET1 신호를 발생한다. 이 RESET1 신호는 인버터(85 내지 87), NAND 회로(88) 및 인버터(89)에 의하여 펄스 신호로 반전되고, AND 회로(83-1 내지 83-5)에 공급된다. Read 명령 신호(RA31)가 HIGH일 때, 예컨대 수신된 명령이 내부에 있는 명령 레지스터를 리셋하는 신호(ResetRA)가 지연 회로(84-1)를 통하여 발생된다.
도 7은 중재기(15)의 동작을 도시하는 타이밍도이다.
도 7에 표기된 명칭을 갖는 신호들은 도 6a의 개개의 위치에 도시되어 있다. 도 7은 Read 명령이 A 포트(11)와 B 포트(12)에 공급되는 경우의 중재기(15)의 동작을 도시하고 있다. 도 7에 도시한 바와 같이, A 포트(11)에 상응하는 Read 명령(RA2)은 우선 순위로서 선택되어(RA)31이 발생되므로, 코어 회로는 판독 동작(READ-A)를 수행한다. 이것에 의하여 발생된 리셋 신호(RESET1)에 응답하여, B 포트(12)에 상응하는 판독-명령(RB2)이 선택되므로, RB31이 발생된다. 리셋 신호(RESET1)가 LOW로 될 때, Read 명령(RB3)은 코어 회로에 공급되므로, 판독 동작(READ-B)가 수행된다.
도 8은 DRAM 코어(14)에 입력된 어드레스에 관한 회로의 블록도이다.
A 포트(11)의 어드레스 버퍼(34)는 어드레스 버퍼(34-1), 전송 게이트(34-2) 및 OR 회로(34-3)를 포함하고 있다. 도 5에 도시한 명령 복호기(62)로부터 출력된 판독-명령 신호(RA1)의 상승 에지에 상응하는 펄스를 갖는 펄스 신호는(RA)1P로서 OR 게이트(34-3)의 입력들 중 하나의 입력에 공급된다. 또한, 도 5에 도시한 명령 복호기(62)로부터 출력된 기록-명령 신호(WA1)의 상승 에지에 상응하는 펄스를 갖는 펄스 신호는 WA1P로서 OR 게이트(34-3)의 입력들 중 다른 하나의 입력에 공급된다. 이하, 신호명 말미에 "P"자를 붙인 신호는 상응하는 시호명의 신호의 상승 에지로부터 행해지는 펄스를 갖는 신호를 나타낸다.
B 포트(12)의 어드레스 버퍼(44)는 입력 버퍼(44-1), 전송 게이트(44-2) 및 OR 회로(44-3)를 포함하고 있다.
어드레스 레지스터 A(20)는 어드레스 래치(101), 전송 게이트(102), 어드레스 래치(103), 전송 게이트(104), 전송 게이트(105), 어드레스 래치(106) 및 전송 게이트(107)를 포함하고 있다. 또한, 어드레스 레지스터 B(21)는 어드레스 래치(111), 전송 게이트(112), 어드레스 래치(113), 전송 게이트(114), 전송 게이트(115), 어드레스 래치(116) 및 전송 게이트(117)를 포함하고 있다.
리프레시 어드레스 레지스터(19)는 리프레시-어드레스-카운터/레지스터(19-1), 인버터(19-2) 및 전송 게이트(19-3)를 포함하고 있다. 리프레시 어드레스는 리프레시-어드레스-카운터/레지스터(19-1)에 의하여 발생되고 유지된다.
전술한 회로 구성의 동작을 통하여, Read 명령 또는 Write 명령이 장치의 외부로부터 입력될 때, 명령과 함께 입력된 어드레스는 어드레스 래치(101 또는 111)에 전달된다. Read 명령의 경우에, 어드레스는 어떠한 타이밍 조작 없이 어드레스 래치(106 또는 116)에 전송된다. Write 명령의 경우에, 어드레스는 일련의 기록 데이터 중 최종 데이터가 획득되는 타이밍에 어드레스 래치(103 또는 113)에 전송된다.
도 8의 회로 구성에 도시한 바와 같이, 어드레스 신호는, 중재기(15)에서 DRAM 코어(14)로 전달되는 개개의 명령 신호(RA3, WA3, RB3, WB3 및 REF3)에 상응하는 펄스 신호(RA3P, WA3P, RB3P, RB3P, WB3P 및 REF3P)에 응답하여 어드레스 래치에서 DRAM 코어(14)로 전달된다.
도 9는 데이터 출력에 관련된 회로의 블록도이다.
데이터 I/O 회로(33)의 데이터 출력에 관련된 부분은 데이터 래치(121), 전송 게이트(122), 데이터 래치(123), 병렬 직렬 변환기(124), 출력 버퍼(125) 및 전송 신호 발생 회로(126)를 포함하고 있다. 더욱이, 데이터 I/O 회로(43)의 데이터 출력에 관련된 부분은 데이터 래치(131), 전송 게이트(132), 데이터 래치(133), 병렬 직렬 변환기(134), 출력 버퍼(135) 및 전송 신호 발생 회로(136)를 포함하고 있다.
메모리 어레이(51)로부터 판독된 데이터는 센스 증폭기(55)에 의하여 증폭되고, 전송 게이트 A(24) 또는 전송 게이트 B(25)를 통하여 각각 데이터 I/O 회로(33) 또는 데이터 I/O 회로(43)에 공급된다. 실행된 명령이 A 포트(11)로부터 판독되고 있는 데이터와 관련이 있다면, 전송 게이트 A(24)가 개방되고, 반면에 실행된 명령이 B 포트(12)로부터 판독되고 있는 데이터와 관련이 있다면, 전송 게이트 B(25)가 개방될 것이다. 이와 같이 공급된 데이터는 데이터 래치(121 또는 131)에 의하여 래치되고 유지된다.
전송 게이트(122 또는 132)는 전송 신호 발생 회로(126 또는 136)로부터 공급된 전송 신호에 응답하여 상응하는 포트에서 Read 명령의 수신 후에 미리 결정된 대기 시간을 개방한다. 이어서, 데이터 래치(121 또는 131)의 데이터는 각각 데이터 래치(123 또는 133)에 전달된다. 그 후, 데이터는 병렬 직렬 변환기(124 또는 134)에 의하여 병렬 데이터에서 직렬 데이터로 변환된다. 이어서, 데이터는 출력 버퍼(125 또는 135)로 전달되고 그로부터 출력된다.
도 10은 전송 신호 발생 회로(126 또는 136)의 구성을 도시하는 회로도이다.
전송 신호 발생 회로(126 또는 136)는 플립플롭(141 내지 144) 및다중화기(145)를 포함하고 있다. 판독-명령 신호(RA1 또는 RB1)는 플립플롭(141)에 공급되고, 계속해서 하나의 플립플롭에서 다음의 플립플롭으로 클록 신호(CLKA1 또는 CLKB1)와 동기하여 전파한다. 대기 시간 정보(A 및 B)는 다중화기(145)에 공급된다. 이 대기 시간 정보는 예컨대 클록 주기수만큼의 대기 시간 길이를 지정한다. 대기 시간 정보를 기초로 하여, 다중화기(145)는 상응하는 플립플롭의 Q 출력을 선택하고 그것을 데이터 전송 신호로서 출력한다.
도 11은 데이터 입력에 관련된 회로의 블록도이다.
데이터 I/O 회로(33)의 데이터 입력에 관한 부분은 데이터 입력 버퍼(151), 직렬 병렬 변환기(152) 및 데이터 전송부(153)를 포함하고 있다. 데이터 I/O 회로(43)의 데이터 입력에 관한 부분은 데이터 입력 버퍼(154), 직렬 병렬 변환기(155) 및 데이터 전송부(156)를 포함하고 있다.
데이터 입력 버퍼(151 또는 154)에 직렬로 입력되는 데이터는 각각 직렬 병령 변환기(152 또는 155)에 의하여 병렬 데이터로 변환된다. 최종 데이터가 입력될 때, 병렬 데이터는 기록-데이터 레지스터 A(22) 또는 기록-데이터 레지스터 B(23)에 전달된다. Write 명령이 중재기(15)로부터 DRAM 코어(14)로 전달될 때, 기록-데이터 레지스터 A(22) 또는 기록-데이터 레지스터 B(23)의 데이터는 Write 명령이 DRAM 코어(14)에 전달되는 것에 상응하는 타이밍을 나타내는 신호(WA3P 또는 WB3P)에 응답하여 DRAM 코어(14)로 전송된다.
도 12는 Read 명령이 연속해서 입력되는 경우에 수행되는 동작을 도시하는 타이밍도이다.
A 포트(11)와 B 포트(12)는 주파수가 다른 클록(CLKA 및 CLKB)에 각각 동기하여 동작한다. 이 예에서, A 포트(11)는 최대 클록 주파수로 동작하고, B 포트(12)는 보다 낮은 클록 주파수로 동작한다.
A 포트(11)는 다음과 같이 설정된다. 즉, 판독-명령 주기=4(CLKA), 데이터 대기 시간=4 및 버스트 길이=4이다. B 포트(12)는 다음과 같이 설정된다. 즉, 판독-명령 주기=2(CLKB), 데이터 대기 시간=2 및 버스트 길이=2이다. 데이터 대기 시간과 버스트 길이는 각 포트의 모드 레지스터에 설정되어 있다.
포트에 의하여 수신된 명령은 개개의 명령 레지스터에 기억된다. 리프레시 명령은 리프레시 명령 레지스터에 기억된다. 중재기는 이들 명령 레지스터를 감시하고, 명령이 수신된 순서대로 그 명령을 DRAM 코어에 전달한다. 다음 명령은 선행 명령의 처리가 완료될 때 전달된다.
DRAM 코어로부터 판독된 데이터는 센스 버퍼로부터 개개의 포트의 데이터 래치(도 9 참조)로 전달된다. 그 후, 데이터는 병렬에서 직렬로 변환되고, 외부 클록과 동기하여 버스트 출력으로서 출력된다.
리프레시 명령은 A 포트로부터 한 번 입력되지만, B 포트의 동작은 도 12에 도시한 바와 같이 영향을 받지 않는다.
도 13은 Write 명령이 연속해서 입력되는 경우에 수행되는 동작을 도시하는 타이밍도이다.
기록 동작의 시간에 장치의 외부로부터 입력된 데이터는 버스트 입력의 형태를 취한다. Write 명령이 기록-명령 레지스터에 기억되는 타이밍은 버스트 입력의최종 데이터가 입력되는 타이밍이다.
도 13에 도시한 바와 같이, A 포트로부터 공급된 리프레시 명령은 B 포트의 동작에 영향을 미치지 않는다.
도 14는 A 포트와 B 포트 모두가 최대 클록 주파수로 동작하는 경우를 도시하는 타이밍도이다.
도 14에 도시한 바와 같이, 이들 포트의 클록 신호들간에는 위상차가 있을 수 있다. 양쪽 포트는 다음과 같이 설정된다. 즉, 판독-명령 주기=4, 데이터 대기 시간=4 및 버스트 길이=4이다. 도면에서 보는 바와 같이, 양쪽 포트가 최대 클록 주파수로 동작하는 경우에도 동작에 관한 문제는 없고, Read 명령은 연속해서 입력된다.
도 15는 A 포트와 B 포트 모두가 최대 클록 주파수로 동작하는 경우를 도시하는 타이밍도이다. 도 15에서, 양쪽 포트는 연속해서 Write 명령을 수신한다.
도 15에 도시한 바와 같이, 이들 포트의 클록 신호들간에는 위상차가 있을 수 있다. 양쪽 포트는 다음과 같이 설정된다. 즉, 기록-명령 주기=4, 데이터 대기 시간=4 및 버스트 길이=4이다. 도면에서 보는 바와 같이, 양쪽 포트가 최대 클록 주파수로 동작하는 경우에도 동작이 적절하게 처리되고, Write 명령은 연속해서 입력된다.
도 16은 명령이 Read 명령에서 Write 명령으로 전환하는 경우의 동작을 도시하는 타이밍도이다.
도 16에 도시한 바와 같이, 명령 전이 "Write->Read"에는 "Write->Write" 또는 "Read->Read"의 명령 기간에 비하여 별도의 명령 기간이 있어야 한다. 그 이유는, Write 명령은 버스트 입력의 최종 데이터가 입력되는 타이밍에 그의 처리를 위하여 전달되기 때문이다. 반대로, Read 명령이 처리를 위하여 전송되는 타이밍은 Read 명령이 입력되는 타이밍으로서 정의되므로, 연속 명령이 "Write->Read"인 경우에 별도의 명령 기간이 있어야 한다. 이러한 요구는 버스트 입력의 형태를 취하는 입력 데이터가 병렬 데이터로 변환된다는 사실에 기인할 수 있다. 버스트 입력으로서 네 개의 데이터 편(片)이 입력되지 않고 한 개의 데이터 편만이 입력된다면, 연속 명령이 "Write->Read"인 경우라도 별도의 명령 기간이 있을 필요가 없다.
이러한 구성에 있어서, 하나의 Write 명령에 대하여 한 개의 데이터 편만이 입력되므로, "Write->Write" 또는 "Read->Read"의 경우과 동일한 명령 기간이 이용되더라도 "Write->Read" 명령의 연속 동안 동작이 적절히 수행될 수 있다.
도 17은 명령이 "Read"에서 "Write"로 전환할 때 리프레시 명령이 입력되는 타이밍을 도시하는 도면이다.
도면 상부에는 리프레시 명령이 입력되는 타이밍을 도시하고 있다. 리프레시 명령은 도시한 기간 중의 어느 타이밍에서 적절히 입력될 수 있다. 예컨대, 리프레시 명령이 도 17에 도시한 타이밍에 입력되더라도, 리프레시 동작은 선행 Write 명령의 실행이 완료되는 경우에만 개시하고, 그 때까지 리프레시 명령은 대기 상태를 유지한다. 이 때문에, 리프레시 명령은 이 대기 상태에 상응하는 기간 이내에 속하는 한 어느 타이밍에서도 적절히 입력될 수 있다.
도 18은 양쪽 포트 중 하나의 포트가 비활성되어 있는 경우에 수행되는 동작을 도시하는 타이밍도이다.
도 18에 도시한 바와 같이, 양쪽 포트 중 하나의 포트[예컨대, 도 18의 A 포트(11)]가 비활성되어 있는 경우에, 리프레시 명령은 리프레시 타이머를 기초로 하여 내부적으로 발생되고, 따라서 리프레시 동작이 실행된다.
도 19는 양쪽 포트가 비활성되어 있는 경우에 수행되는 동작을 도시하는 타이밍도이다.
도 19에 도시한 바와 같이, 양쪽 포트가 비활성되어 있는 경우에, 리프레시 명령은 리프레시 타이머를 기초로 하여 내부적으로 발생되고, 따라서 리프레시 동작이 실행된다.
도 20a 및 도 20b는 DRAM 코어의 동작을 도시하느 타이밍도이다.
도 20a는 판독 동작의 경우를 도시하고 있고, 도 20b는 기록 동작의 경우를 도시하고 있다. 도 20a 및 도 20b에 도시한 동작 타이밍에서, 입력된 명령은, 전체 동작이 완료되기 전에, 워드선 선택, 데이터 증폭, 재기록 및 프리챠지로 된 연속 동작에 의하여 발생된다.
도 21은 한쪽 포트만이 동작되는 경우에 수행되는 배속 동작을 도시하는 타이밍도이다.
두 개의 포트 중 하나의 포트를 중지시킴으로써, 명령 입력에서 동작중인 포트까지의 기간은 반으로 단축될 수 있다. 이러한 경우에, 외부 명령의 가장 빠른 주기와 내부 행위의 가장 빠른 주기는 서로 동일하다. 도 21의 예에서, 명령 기간은 클록 주파수를 변경하지 않고서도 단축된다. 이 경우, 버스트 길이도 점점 더짧아지므로, 데이터 전송 속도는 양쪽 포트를 이용하는 경우와 동일하다.
도 22는 클록 주파수를 두 배로 높힘으로써 데이터 전송 속도를 배가시키는 경우의 배속 동작을 도시하는 타이밍도이다.
도 22에서, 두 포트 중 하나의 포트가 정지될 때, 동작하는 포트에 입력되는 클록 신호는 두 배로 높은 주파수로 설정된다. 이와 관련하여, 명령 입력의 시간 간격은 길이가 반으로 된다. 이 경우, 버스트 길이는 양쪽 포트를 이용하는 경우와 동일하므로, 데이터 전송 속도는 양쪽 포트를 이용하는 경우의 속도에 두 배가 된다.
또한, 외부 클록 신호는 I/O 회로부에만 입력되므로, 이 회로부가 고속 동작을 수용할 수 있도록 설계된다면, 배속 동작을 실제로 실시하는 것은 용이하다.
도 23은 본 발명의 제2 실시예를 설명하기 위한 도면이다.
일반적으로, 메모리는 그 용도에 따라 확장된다. 같은 이유가 다중 포트 메모리에도 적용되며, 메모리 공간을 확장할 목적으로 복수 개의 다중 포트 메모리를 설치하는 경우가 있을 수 있다.
다중 포트 메모리는 중재기를 포함하고 있고, 여러 개의 명령 중 어느 명령이 개개의 포트에 입력할 때 보다 빠른지를 검출하고, 이어서 검출된 순서대로 명령이 실행된다. 명령이 개개의 포트에 거의 동일한 타이밍으로 입력되더라도, 그들 명령의 연속 실행을 위한 순서는 판단된다. 도 23에 도시한 예에는 복수 개의 다중 포트 메모리(200-1 내지 200-n)이 설치되어 있고, 그 다중 포트 메모리(200-1 내지 200-n)에는 동일 명령들이 A 포트 제어기(201)와 B 포트 제어기(202)로부터 공급된다. 각 다중 포트 메모리에 명령이 도달하는 관련 타이밍은 약간 다르다. 왜냐하면, 명령들이 동시에 A 포트와 B 포트에 공급되더라도 전력 잡음의 영향이 있기 때문이다. 이 경우, 각 다중 포트 메모리의 중재기는 메모리마다 다른 순서로 명령들을 실행할 수 있다.
메모리 장치들간 명령 실행의 순서가 다르더라도 A 포트에 대한 명령과 B 포트에 대한 명령이 다른 어드레스를 향하는 경우에는 문제가 없을 것이다. 그러나, 여러 개의 명령이 동일 어드레스를 향하는 경우에는 문제가 발생한다.
예컨대, 호출된 데이터는, 그 데이터가 동일 어드레스 셀에 대한 기록 액세스 이후에 판독될 때와 그 데이터가 동일 메모리 셀에 대한 기록 액세스 이전에 판독될 때 사이에 차이가 있을 것이다. 또한, B 포트의 데이터는 A 포트의 데이터가 기록된 이후에 B 포트의 데이터가 기록되는 경우에 메모리에 머물러 있지만, 동작이 역순으로 수행된다면 A 포트의 데이터가 메모리에 남아 있을 것이다.
명령 실행 순서가 전술한 바와 같이 메모리마다 다르면 데이터의 신뢰도에 관한 심각한 문제가 생긴다.
따라서, 복수 개의 다중 포트 메모리가 이용되는 경우에는 중재기에 의하여 수행되는 판정에 대해 메모리들간의 일관성을 유지할 필요가 있다. 이를 위해, 본 발명의 제2 실시예는 다중 포트 메모리들 중 하나를 마스터 장치(200-1)로서 할당하고, 나머지 장치들을 슬레이브 장치(200-2 내지 200-n)로서 이용한다. 슬레이브 장치는 마스터 장치의 중재기에 의하여 행해지는 판정을 확인한다.
도 24는 본 발명에 따른 다중 포트 메모리의 제2 실시예를 도시하는 블록도이다. 이 예의 구성에는 두 개의 포트, 즉 A 포트와 B 포트가 설치된다.
도 4에 도시한 제1 실시예와의 다른점으로는 A 포트(11A)와 B 포트(12A)에 BUSY 신호 I/O부(36 및 46)가 각각 설치된다는 사실과, A 포트의 어드레스를B 포트의 어드레스와 비교하기 위하여 어드레스 비교기(26)가 설치된다는 사실이 있다. 어드레스 비교기(26)가 어드레스 일치 사실을 검출하고 이어서 일치 신호를 발생하면, 중재기(15A)는 연속 모드를 개시하기 위하여 DRAM 코어의 동작 모드들을 전환할 것이다.
도 25a 및 도 25b는 연속 모드를 설명하기 위한 타이밍도이다.
제1 실시예의 동작을 도시하는 도면(도 20)에 도시한 바와 같이, DRAM 코어의 동작은 ROW 동작과 COLUMN 동작으로 나뉜다. 본 발명에 있어서, ROW 동작, COLUMN 동작 및 프리챠지 동작은 일련의 연속 실행으로서 수행되고, 이들은 하나의 내부 동작 주기를 형성한다.
제2 실시예의 연속 모드는 일반 DRAM의 열(column) 액세스 동작과 동일하고, 동일 셀에 대하여 명령을 반복해서 실행한다. 즉, 이 모드는 ROW 동작 이후에 COLUMN 동작을 여러 번 실행한 후 프리챠지를 수행한다. 동일 셀에 대한 Write 명령들이 연속해서 공급되는 경우에, 이전 명령을 수행하지 않고 나중의 명령이 수행된다. 그 이유는, 이들 Write 명령이 연속해서 수행된다면, 이전 명령에 의하여 기록된 데이터는 후자의 명령의 데이터에 의하여 덮어씌어 질 것이기 때문이다.
도 25a에 도시한 바와 같이, 연속 모드에 의하여, 동작은 보통의 내부 동작의 2 주기에 비해 단축될 수 있고, 따라서 여분의 시간이 제공된다. 이 여분의 시간으로 얻은 여분은 ROW 동작과 COLUMN 동작 사이의 지점(point)에 배정된다(이하, 이 여분을 Wait 기간이라 부른다). 이 Wait 기간 중에, 마스터와 슬레이브 사이에 명령 실행 순서를 일관성 있게 만들기 위한 처리가 수행된다.
다음에, BUSY 신호를 이용하여 마스터와 슬레이브 사이에 동작들을 일관성 있게 만들기 위한 절차에 관하여 설명한다.
BUSY 신호는 마스터와 슬레이브간의 동일한 명령 실행 순서를 보증하기 위하여 이용된다. BUSY 신호 I/O부(36 및 46)는, 마스터 장치(200-1)에서 BUSY 신호를출력하는 BUSY 출력 회로로서의 역할을 행하고, 슬레이브 장치(200-2 내지 200-n)에서 BUSY 신호를 수신하는 BUSY 입력 회로로서의 역할을 행한다. 마스터 장치 식별과 슬레이브 장치 식별을 표시하는 정보는 모드 레지스터(31 또는 41)에 기억된다.
메모리 장치는 포트들 중 하나의 포트로부터 명령을 수신하고, 도 20a 및 도 20b에 도시한 동작을 개시한다.
ROW 동작의 기간 이내에 동일 어드레스를 액세스하기 위하여 명령이 다른 포트로부터 입력되는 경우에, 어드레스 비교기(26)는 일치 신호를 발생한다. 이 일치 신호의 수신시, 중재기(15A)는 연속 모드 신호를 DRAM 코어(14)의 제어 회로(53)에 공급한다. 연속 모드 신호에 응답하여, DRAM 코어(14)는 도 25b에 도시한 연속 모드로 시프트한다.
Wait 기간 중에, 마스터 장치(200-1)는 중재기(15A)에 의하여 행해진 판정을 기초로 하여 BUSY-A 신호 또는 BUSY-B 신호를 발생한다. 이 예에서, BUSY 신호는명령을 보다 빨리 수신한 것으로 중재기(15A)에 의하여 인식되는 포트에 대하여 발생된다.
마찬가지로, Wait 기간 중에, 슬레이브 장치는 마스터 장치에 의하여 발생된 BUSY 신호를 검출하고, 그것이 BUSY 신호의 표시와 다르면 마스트를 확인하기 위하여 그 자신의 중재기(15A)에 의해 행해진 판정을 변경한다. 이어서, COLUMN 동작은 변형된 명령 순서에 따라 수행된다.
도 26은 BUSY 신호가 A 포트의 Read 명령과 B 포트의 Write 명령에 대하여 생성되는 경우에 수행되는 동작을 도시하는 타이밍도이다.
이 실시예에서, BUSY 신호는 논리 레벨 "L"이라고 가정하여 선택을 표시한다. 또한, 양호하게는, BUSY 신호는 동기적으로 송신 및 수신된다. 그 이유는, BUSY 신호를 제한된 Wait 기간 이내에 신속하게 변경할 필요가 있기 때문이다.
도 26의 예에서, A 포트의 ReadA2는 B 포트의 WriteB2보다 빠르므로, 마스터는 Wait 기간 중에 A 포트를 표시하는 BUSY 신호를 발생한다. 이어서, 마스터와 슬레이브는 ReadA2를 첫 번째로 WriteB2를 두 번째의 순서로 연속 모드로 열 동작을 실행한다.
도 27은 A 포트의 Read 명령과 B 포트의 Write 명령에 대하여 BUSY 신호가 발생되는 경우에 수행되는 동작을 도시하는 타이밍도이다. 도 26은 A 포트의 Read 명령이 빠른 경우를 도시하였지만, 도 27은 B 포트의 Write 명령이 빠른 경우를 도시하고 있다.
도 28은 A 포트의 Write 명령과 B 포트의 Write 명령에 대하여 BUSY 신호가발생되는 경우에 수행되는 동작을 도시하는 타이밍도이다.
도 28에 도시한 동작의 예는 A 포트의 Write 명령이 B 포트의 Write 명령보다 빠른 경우에 관한 것이다. 즉, A 포트의 WriteA2가 B 포트의 WriteB2보다 빠르므로, A 포트를 표시하는 BUSY 신호가 발생되고, 슬레이브에 공급된다. 이 경우, A 포트의 Write 명령을 실행함으로써 기록될 데이터는 즉시 재기록되므로, B 포트의 Write 명령(WriteB2)만이 늦게 입력되는 대로 실행된다.
도 29는, A 포트의 Write 명령과 B 포트의 Write 명령에 대하여 BUSY 신호가 생기는 경우에 수행되는 동작을 도시하는 타이밍도이다.
도 29에 도시한 동작의 예는 B 포트의 Write 명령이 A 포트의 Write 명령보다 빠른 경우에 관한 것이다. 이 경우, B 포트의 Write 명령을 실행함으로써 기록될 데이터는 즉시 대체되므로, A 포트 의Write 명령(WriteA2)만이 실행된다. 이 예에서, A 포트의 클록 주파수는 B 포트의 클록 주파수보다 약간 낮게 설정된다. 명령(WriteA2 및 WriteB2)이 비교될 때 A 포트에 대한 명령 입력이 보다 빠르지만, 최종 데이터 입력을 수신함에 있어서 보다 빠른 것은 B 포트이다. 그 이유는, B 포트의 Write 명령이 A 포트의 Write 명령보다 빠르다고 판단되기 때문이다.
전술한 설명은, A 포트의 Read 명령과 B 포트의 Read 명령의 조합에 관한 경우에 대하여는 전혀 행해지지 않았다. 데이터의 신뢰도은 관련 타이밍과 무관하게 영향 받지 않으므로, 이 경우에서 BUSY 신호를 발생할 필요는 없다.
도 30은 제어기에 의하여 발생된 인터럽트를 조절할 수 있는 구성에서의 동작을 도시하는 타이밍도이다.
"인터럽트"는 BUSY 신호가 개시될 때 마스터 장치의 중재기에 의해 행해지는 판정의 변경을 지시하는 명령어이다. 인터럽트의 생성 방법은,
a) 명령으로서 입력하는 단계와,
b) 전용 단자핀을 제공하는 단계와,
c) 특수한 어드레스 조합을 이용하는 단계, 및
d) BUSY 신호를 이용하는 단계를 포함하고 있다.
단계 d)는 BUSY 신호가 발생되는 포트와는 다른 포트에 대하여 제어기에 의해 BUSY 신호를 공급하고, 그것을 검출하기 위하여 마스터 메모리와 슬레이브 메모리를 위해 준비된다.
도 30의 예에서, 인터럽트는 BUSY 신호가 A 포트의 Write 명령과 B 포트의 Write 명령에 대하여 생기는 경우에 발생된다. 도 28 및 도 29와 관련하여 설명한 바와 같이, BUSY 신호가 Write-&-Write 조합에 의하여 발생되는 경우에는 A 포트의 Write 명령과 B 포트의 Write 명령 중 하나만이 실행될 것이다. 결국, 먼저(빨리) 입력되는 데이터는 유실될 것이다.
도 30에 있어서, A 포트의 WriteA2는 B 포트의 WriteB2보다 빠르므로, A 포트로 향하는 BUSY 신호가 발생된다. 마스터에 의하여 발생된 BUSY 신호를 수신하면, 제어기는 A 포트의 기록 데이터가 소거되지 않도록 인터럽트 명령을 발생한다.
마스터와 슬레이브는 제어기로부터 인터럽트 명령을 수신하고, 주재기에 의하여 행해지는 판정을 변경시키며, 이어서 Wait 주기의 말미 이후에 인터럽트 명령에 따라 Write 동작을 수행한다. 즉, 중재기는 그의 판정을 변형하여, A 포트의 명령(WriteA2)이 B 포트의 명령보다 낮음을 표시하고, WriteA2에 관한 기록 동작을 수행한다. 이로써, A 포트의 기록 데이터가 제거되지 않게 할 수 있다. Write->Write 조합의 경우에, 기록 동작을 한 번만 수행하는 것이 필요한 전부이므로, Read->Write 조합 또는 Write->Read 조합의 연속 모드에 비해 보다 긴 Wait 주기를 할당할 수 있다. 따라서, 이 신호 주기를 이용하여 BUSY 신호에 응답해서 인터럽트 명령을 수행할 수 있다.
다음에, 전술한 동작을 달성하기 위해 어드레스 비교기, BUSY I/O 시스템 및 인터럽트 시스템으로 된 구성에 관하여 설명한다.
도 31은 본 발명의 제2 실시예에 따른 다중 포트 메모리의, 어드레스 비교기, BUSY I/O 시스템 및 인터럽트 시스템의 구성을 도시하는 도면이다.
어드레스 비교기(26)는 어드레스 레지스터에 기억된 어드레스들을 비교하고, A 포트(11)의 어드레스와 B 포트(12)의 어드레스간에 일치가 있는 경우에 일치 신호를 출력한다. 또한, 두 개의 어드레스가 일치하는 어드레스임을 표시하기 위하여, 신호(ARA, AWA, ARB 및 AWB)가 발생된다. 예컨대, A 포트의Write 명령과 B 포트의Write 명령이 일치하는 경우에 AWA 및 AWB는 "H"로 설정된다. NAND 회로(208 내지 210) 각각은 N1, N2 및 N3가 "L"로 되도록 이들 신호의 논리 NAND를 얻는다.
BUSY 신호 I/O부(36 및 46)와 인터럽트 회로는 도 31의 좌측[어드레스 비교기(26)의 하부]에 설치된다. 모드 레지스터(31 또는41)의 설정을 기초로 하여, BUSY-&-I/O-하드웨어-제어부(211)는 마스터 장치의 경우에 일치 신호의 검출에 응답하여 활성 신호(마스터)를 발생하고, 슬레이브 장치의 경우에 활성 신호(슬레이브)를 발생한다. 활성 신호(마스터)는 BUSY 출력 신호(212 및 213)를 활성화하고, 활성 신호(슬레이브)는 BUSY 입력 회로(214 및 215)를 활성화한다.
중재기에 있어서, 명령 순서상 첫 번째로서 선택된 명령은 출력(RA3, WA3, RB3 및 WB3) 중 하나로 출력된다(즉, 여러 출력 중 하나가 "H"이다). 마스터 장치의 경우에,(RA)3 내지 WB3은 신호(N4)에 응답하여 래치(216 및 217)에 의해 래치되고, 신호(N4)는 일치 신호의 상승 에지에 상응하는 펄스로 이루어진다. BUSY-A 신호 또는 BUSY-B 신호는 래치된 데이터를 기초로 하여 출력된다.
슬레이브 장치의 경우에, "L"인 BUSY-A 신호가 수신되면, 인터럽트 회로(218)로부터 출력된 신호(N10)는 "L"로 설정된다. "L"인 BUSY-B 신호가 수신되면, 인터럽트 회로(219)로부터 출력되는 신호(N11)는 "L"로 설정된다. 신호(N10 및 N11)는 그들 신호가 비활성 상태에 있을 때 "H"이고, BUSY 신호 또는 인터럽트가 검출될 때 "L"로 된다.
인터럽트 검출부(220)는 제어기로부터 공급된 언터럽트 명령을 검출하고, 인터럽트 신호(A 또는 B)를 출력한다. 인터럽트 신호는 진입 중인 BUSY 신호보다 높은 우선 순위가 주어지고, 신호(N10 및 N11)로서 전달된다.
도 31의 하부에 도시한 세 개의 비교기(80-3, 80-5 및 80-6)는 중재기(15A)의 비교기 회로의 부분이다(도 6a 및 도 24 참조). 이들 비교기는 BUSY 판단을 필요로 하는 명령 조합에 관하여 비교를 행한다.
도 32는 마스터 장치의 동작을 도시하는 타이밍도이다. 도 33은 슬레이브 장치의 동작을 도시하는 타이밍도이다.
이들 타이밍도는 A 포트의 Read 명령의 어드레스와 B 포트의Write 명령의 어드레스가 서로 일치하는 경우를 도시하고 있다. 도 32의 마스터는 A 포트가 보다 빠름을 판정하고, 도 33의 슬레이브는 B 포트가 보다 빠름을 판정한다. 이 경우, 마스터의 비교기(80-3)는 "L"인 N21과 "H"인 N22를 출력한다. 또한, 슬레이브의 비교기(80-3)는 "H"인 N21과 "L"인 N22를 출력한다. 마스터는 BUSY-A 신호를 발생하고, 슬레이브는 그 BUSY-A 신호의 수신시에 N10을 "L"로 변경한다. N1은 이 시점에서 "L"이므로, N10의 LOW 신호는 NOR 회로(221)와 인버터(222)를 통하여 슬레이브의 비교기(80-3)에 공급된다. 이에 응답하여, 슬레이브의 비교기(80-3)의 출력들은 "L"인 N21과 "H"인 B22로 변경된다. 이와 같이 하여, 중재기에 의한 판정이 변경된다.
이제, A 포트의 Write 명령의 어드레스와 B 포트의 Read 명령의 어드레스가 전술한 경우와 반대로 서로 일치하는 경우에 관하여 알아 본다. 이 경우, 슬레이브의 비교기(80-5)의 출력들은 변경되고, 따라서 슬레이브의 중재기에 의해 행해진 판정을 변형시킨다.
WA2를 WB2와 비교하는 비교기(80-6)는 비교기(80-3 및 80-5)와는 다른 주변 회로 구성을 갖는다. 그 이유는, BUSY 신호가 Write-&-Write 조합에 응답하여 발생할 때, A 포트의 명령과 B 포트의 명령 중 하나만이 유지되기 때문이다.
도 34는 두 개의 포트의 기록 어드레스가 같은 경우에 수행되는 마스터 장치의 동작을 도시하는 타이밍도이다. 도 35는 두 개의 포트의 기록 어드레스가 같은 경우에 수행되는 슬레이브 장치의 동작을 도시하는 타이밍도이다.
이제, 마스터는 A 포트가 도 34에 도시한 바와 같이 보다 빠름을 판정하고 슬레이브는 B 포트가 도 35에 도시한 바와 같이 보다 빠름을 확인하는 경우에 관하여 알아 본다. 어드레스 비교기(26)가 일치 신호를 이제 막 발생한 순간에, 마스터의 비교기(80-6)의 출력들은 "L"인 N25와 "H"인 N26이고, 슬레이브의 비교기(80-6)의 출력들은 "H"인 N25와 "L"인 N26이다. 마스터는 이 상태에서 RA3, WA3, RB3 및 WB3를 래치하고, BUSY-A 신호를 출력한다.
이 경우와 같이 BUSY 신호가 Write-Write 조합으로 발생하는 경우에는 보다 먼저(빨리) 입력된 Write 명령을 소거할 필요가 있다. 이를 위해, 인버터(231), NOR 회로(232), NAND 회로(233 및 234) 및 인버터(235 및 236)가 설치된다. 일치 신호에 응답하여, HIGH 에지 펄스 회로(230)는 신호(N4)의 "H" 펄스를 발생한다. 신호(N4)는 소정의 논리 동작을 통하여 신호(N3)와 조합되어, 신호(N31)의 "H" 펄스를 발생한다. 이 예에서, N26은 N33이 "H" 펄스를 발생하도록 마스터에 대하여 "H"이므로, 그 결과, N25는 "H"로 변경되고 N26은 "L"로 변경된다. 여기에서, 지연 회로(237 및 238)는 별도의 시간을 제공하는 역할을 담당하는데, 이 별도의 시간은 변경이 발생하기 이전에 BUSY 신호를 발생하고 이미 변경된 상황이, 그 변경된 상황이 NAND 회로(233 및 234)로 궤환됨에 따라, 변경되지 않도록 이용될 수 있다. 슬레이브에 있어서, N25는 "L"로 변경되고, N26은 "H"로 변경된다.
전술한 바와 같이, 마스터는 BUSY-A 신호를 발생하고, 이 신호를 수신하는 슬레이브는 그의 N10이 "L"로 변경된다. N3은 이 특정 순간에 "L"이므로, 그것은 "L"이기 때문에, 슬레이브의 비교기(80-6)는 다시 반전되고, 그 결과, N25는 "H"로변경되며 N26은 "L"로 변경된다.
지연 회로(250)는 신호(N4)를 수신하고, 이 신호를 미리 결정된 시간 길이만큼 지연시키며, 그 결과, Wait 기간을 생성한다. 여기에서, Delay(t1)는 N1 또는 N2가 선택될 때 선택되고, 반면에 Delay(t2)는 N3이 선택될 때 선택되다.
Wait 기간이 말미로 다가갈 때 스킵된 Write 명령을 명령 레지스터로부터 제거하기 위하여 NAND 회로(251 및 252)와 인버터(253 및 254)가 설치된다. 예컨대, Wait 기간의 말미에서 N25가 "L"이고 N26이 "H"이면 A 포트의 Write 명령이 실행될 것이다. 따라서, ResetWB2가 발생되어 B 포트의 Write 명령을 레지스터로부터 제거한다. Wait 기간 중에는 BUSY 수신 또는 인터럽트를 통하여 판정을 변경할 필요가 있으므로, 명령 레지스터 내의 명령들은 이 기간 중에 그대로 놓아둔다.
도 36은 두 개의 포트의 기록 어드레스가 서로 일치하여 제어기가 인터럽트 명령을 발생하는 경우의 마스터 장치의 동작을 도시하는 타이밍도이다. 도 37은 두 개의 포트의 기록 어드레스가 서로 일치하여 제어기가 인터럽트 명령을 발생하는 경우의 슬레이브 장치의 동작을 도시하는 타이밍도이다.
도 36에 도시한 바와 같이, 마스터 장치의 명령 선택 상황은 인터럽트에 의하여 반전된다. 또한, 도 37에 도시한 바와 같이, 슬레이브 장치의 명령 선택 상황은 BUSY 신호에 의하여 반전되고, 이어서 인터럽트에 의하여 또 다시 반전된다. 여기에서, 인터럽트에 의하여 상황을 반전시키는 동작은 BUSY 신호에 의하여 상황을 반전시키는 동작과 동일하고, 그에 관한 상세한 설명은 생략하기로 한다.
전술한 제2 실시예의 동작에 있어서, 주어진 명령으로부터 다음의 후속 명령으로 확장하는 명령 주기는 BUSY 신호 또는 인터럽트가 발생된 후에도 변경하지 않도록 설계된다.
도 26에 있어서, 예컨대, BUSY 신호는 ReadA2에 응답하여 발생하지만, ReadA2->ReadA3의 명령 기간은 ReadA1->ReadA2의 명령 기간과 동일하다. BUSY 또는 인터럽트는 Wait 기간 중에 조절되는 것이 필요하다. 이러한 이유로, 긴 시스템 버스와 많은 수의 슬레이브 장치와 저속의 제어기 응답 등으로 인해 BUSY 신호 또는 인터럽트 신호의 변경이 긴 시간이 걸리는 경우에는 보다 긴 Wait 기간이 필요해진다.
이러한 문제를 해소하기 위하여, BUSY 또는 인터럽트에 뒤이은 다음 명령의 입력을 지연시키는 동안에 Wait 기간이 연장될 수도 있다. 즉, ReadA2->ReadA3의 명령 기간은 Wait 기간을 확장하는 동안에 도 26의 ReadA1->ReadA2의 명령 기간보다 길게 되도록 연장될 수 있다.
명령 입력을 지연시키기 위하여, 명령 입력의 지연은 설계 시트 상에 지정될 수도 있고, 제어기는 데이터 시트에 따라 동작하도록 설계될 수도 있다. Wait 기간의 연장은 도 31에 도시한 지연 회로(250)의 지연 시간을 길게함으로써 달성된다. Wait 기간이 용도에 따라 중재될 필요가 있으면, 두 개 또는 그 이상의 지연선이 지연 회로(250) 내에 설치되어 모드 레지스터의 설정을 통하여 지연 길이의 설정을 변경할 수도 있다.
이와 같이 하여 Wait 기간이 연장되는 경우에, Write-Write 명령 조합에 응답하여 BUSY 신호가 발생되는 경우 외의 다른 경우에도 긴 Wait 기간이 제공될 수있다. 이를 고려하면, 제어기는, Read-Write 또는 Write-Read 명령 조합에 응답하여 BUSY 신호가 발생하는 경우에도, 인터럽트 명령을 발생할 수 있다.
전술한 본 발명에 있어서, 명령이 N 개의 포트에 입력되는 경우에, N 개의 포트에 상응하는 모든 N 개의 명령은 주어진 임의의 포트의 최소 명령 주기 이내에 차례 차례로 실행된다. 이 때문에, 주어진 임의의 포트에 관한 액세스 동작은 장치의 외부가 최소 명령 주기 이내에 수행되는 것처럼 보인다. 이 경우, BUSY 신호는 동일 어드레스가 복수 개의 포트로부터 액세스되는 경우에만 발생할 수 있다. 따라서, SRAM형 다중 포트 메모리의 BUSY 발생 확률만큼 낮은 BUSY 발생 확률을 얻을 수 있게 된다.
또한, 본 발명의 반도체 메모리 장치에 있어서, 내부 회로는 다이내믹형 메모리 셀로 이루어지는 셀 어레이와 메모리 셀이 리프레시되는 타이밍을 결정하는 리프레시 회로를 포함하고 있다. 제1 모드에 있어서, 메모리 셀은 N 개의 외부 포트 중 적어도 하나에 입력된 리프레시 명령에 응답하여 리프레시되고, 제2 모드에 있어서, 메모리 셀은 리프레시 회로에 의하여 지정되는 타이밍으로 리프레시된다.
즉, 전술한 본 발명에는 리프레시 동작이 외부 포트로부터의 지시에 응답하여 수행되는 제1 동작 모드와 리프레시 동작이 내부 리프레시 회로에 응답하여 수행되는 제2 응답 모드가 제공된다. 이러한 구성으로 인해, 여러 개의 외부 포트 중 하나는 순간적인 기간에 리프레시 명령을 수신하도록 리프레시 관리를 위한 포트로서 동작하게 할 수 있고, 내부 리프레시 회로는 이 리프레시 관리용 포트가 비활성 상태에 있다면 리프레시 동작을 수행한다. 이에 의하여, 시스템의 구성에 따라 유연하게 리프레시 동작을 관리할 수 있게 된다.
[본 발명의 제2 형태]
다음에, 본 발명의 제2 형태에 관하여 설명한다.
다중 포트 메모리에는 여러 가지의 종류가 있다. 이하, 복수 개의 포트를 갖는 메모리에 관하여 언급하고, 개개의 포트로부터의 액세스는 공통 메모리 어레이에 대하여 서로 독립적으로 행해질 수 있다. 예컨대, 2 포트형의 다중 포트 메모리에 A 포트와 B 포트가 장착되고, 공통 메모리에 대한 판독/기록 액세스는 A 포트에 연결된 CPU-A로부터 그리고 B 포트에 접속된 CPU-B로부터 독립적으로 행해질 수 있게 된다.
이러한 종류의 다중 포트 메모리로서는 SRAM 메모리 어레이를 갖는 메모리가 공지되어 있고, 그 메모리에서는 워드선과 비트선 쌍이 중복 세트로 제공되며, 각 메모리 셀은 2 세트의 워드선과 비트선 쌍에 접속되어 있다. 그러나, 이러한 다중 포트 메모리는, 중복 세트의 워드선과 비트선 쌍이 설치될 필요가 있다는 점에서 회로 밀도가 낮다는 문제가 있다.
이를 해소하기 위하여, 다중프로세서 구성을 갖는 컴퓨터를 이용한 공유 메모리와 같은 메카니즘을 이용하는 것을 고려할 수 있다. 공유 메모리는 공통 메모리용으로 제공된 복수 개의 포트를 갖는다. 통상, SRAM이 메모리로서 이용되며, 복수 개의 포트는 각각의 IC로서 구성된다. 복수 개의 포트로부터 액세스가 동시에 행해지는 경우에, 복수 개의 포트에 응답하는 동작은 메모리 어레이가 공유용으로 되어 있기 때문에 동시에 수행될 수 없다. 이러한 문제를 방지하기 위한 가장 용이한 방법은 포트에 BUSY 신호를 발생하여, 다른 포트로부터 액세스가 행해지고 있을 때 그 포트에 대한 액세스를 방지하는 것이다. 그러나, 이것은 메모리의 이용을 제한하는 문제를 발생시킨다. 이를 감안하여, 중재기라고 부르는 중재 회로를 공통 메모리에 설치하고, 복수 개의 포트에 의하여 수신된 액세스 요구의 우선 순위를 판단한다. 메모리 어레이의 제어 회로는 우선 순위의 순서대로 액세스 요구에 응답하는 동작을 수행하도록 구성된다. 예컨대, 액세스 요구는 도달 순서, 예컨대 액세스 요구가 개개의 포트에 공급되는 순서대로 수행된다.
이러한 경우에, 메모리 어레이는 복수 개의 포트로부터 불시에 액세스되는 것을 끝내게 된다. 이 때문에, 동일의 행 어드레스에서 연속의 열 어드레스를 연속해서 액세스하는 열 액세스 동작은 제공되지 않지만, 이러한 열 액세스는 통상 DRAM에서도 이용 가능하다. 즉, 소정의 셀이 선택되고 판독/기록 동작을 위하여 액세스되며 단일의 액세스에 응답하여 수행되는 모든 것들을 리셋한다.
공유 메모리가 구성되는 경우에, 일반적으로, 메모리 어레이로서는 종래에 SRAM이 이용된다. 그 이유는, SRAM은 고속 랜덤 액세스 동작이 가능하고, 또한, 리프레시 동작이 필요 없으므로 SRAM을 이용하기가 용이하기 때문이다. 또한, 단일 칩의 다중 포트 메모리에는 종래에 중복 세트의 워드선과 비트선 쌍이 설치되고, 보통의 SRAM 구성을 갖는 메모리 어레이를 기초로 한 단일 칩의 다중 포트 메모리는 실제로 아직 이용되지 않았다.
요약하면, 다중 포트 메모리와 공유 메모리는 SRAM을 이용하여 구성되고, 리프레시 동작을 필요로 하는 DRAM은 이용되지 않는다.
처리될 데이터의 량은 시스템이 점점 더 고성능을 제공함에 따라 증가하고, 다중 포트 메모리도 대용량이 필요하다. 따라서, SRAM보다 높은 회로 밀도를 갖는 다이내믹형 메모리 셀(DRAM) 어레이를 이용하여 다중 포트 메모리를 구성하는 것을 고려할 수 있고, 그 결과, 다중 포트 메모리는 저비용으로 대기억 용량을 갖게 된다. 그러나, 메모리 셀의 리프레시 동작은 문제가 있다.
종래의 DRAM에 있어서, 리프레시 명령은 판독/기록 명령들 사이에 장치의 외부로부터 일정한 기간으로 제공될 필요가 있다. 이를 위하여, DRAM 기반의 시스템의 제어기 장치에는 리프레시 관리를 위해 타이머 및/또는 제어 회로가 설치된다. 그러나, SRAM 기반의 다중 포트 메모리를 이용하는 시스템에는 이러한 회로가 설치되지 않는다. DRAM을 기반으로하여 메모리를 구성하는 경우에도, 종래의 다중 포트 메모리에서와 동일한 방식으로 이용 가능해야 할 필요가 있다. 즉, DRAM들로 이루어진 메모리 어레이를 갖는 다중 포트 메모리는 그 자체로 리프레시 동작을 수행할 필요가 있다.
본 발명은 메모리 어레이가 DRAM 코어로 이루어진 다중 포트 메모리를 제공하는 데 목적이 있고, 리프레시 동작에 대한 어떠한 고려 없이도 이용될 수 있으며, 그 결과, 대용량이며 이용하기 용이한 다중 포트 메모리를 저비용으로 제공한다.
도 38은 본 발명의 원리를 설명하기 위한 도면이고, 두 개의 포트에 대하여 판독 동작이 수행되는 경우를 도시하고 있다.
두 개의 외부 포트, 즉 A 포트와 B 포트에 공급되는 명령은 3회(回)의 내부동작 주기가 수행되는 동안에 최소 기간으로 제공된다. 즉, 외부 명령 주기는 3회의 동작 주기에 요구되는 기간보다 긴 길이로 설정된다. 클록(CLKA 및 CLKB)은 각각 A 포트와 B 포트에 입력되고, 장치의 외부와 내부 포트간의 어드레스 및 데이터의 교환은 클록 신호와 동기하여 행해진다. 어드레스(도시하지 않음)는 명령과 함께 동시에 입력된다. 판독 명령이 최소 외부 명령 주기에 A 포트와 B 포트로 입력되는 경우에, 중재 회로는 첫 번째로 도달하는 입력에 우선 순위를 부여함으로써 코어 동작을 제어한다. 세 개의 내부 동작은 전술한 1회의 외부 명령 주기 동안에 수행될 수 있고, 두 개의 판독 동작은 이 외부 명령 주기 동안에 메모리 어레이 상에서 수행되며, 이어서 판독 데이터를 A 포트와 B 포트에 출력한다. A 포트와 B 포트 모두는 호출된 데이터를 유지하고, 그 호출된 데이터를 다음의 후속 외부 명령 주기의 개시시에, 즉 판독 명령의 입력으로부터의 4번째 클록과 동기하여 출력한다. 즉, 이 경우의 데이터 대기 시간은 4이다.
리프레시 타이머는 내부 회로로서 설치되고, 그 자체에서 리프레시 명령을 발생한다. 세 개의 내부 동작은 전술한 1회의 외부 명령 동안에 수행될 수 있으므로, 명령(A), 명령(B) 및 리프레시 명령은 리프레시 명령이 발생되는 경우에 단일의 외부 명령 주기 동안에 실행될 수 있다. 판독 데이터는 다음의 후속 외부 명령 주기의 개시시에 출력된다. 이와 같이 하여, 다중 포트 메모리는 리프레시 동작을 전혀 고려하지 않아도 장치의 외부로부터 액세스될 수 있다.
도 38의 예에 있어서, 판독 동작의 하나의 아이템은 하나의 판독 명령에 응답하여 출력된다. 즉, 버스트 길이는 1이다. 따라서, 판독 데이터의 출력이 1회의주기로 완료된 후, 외부 포트는 외부 명령 주기의 3회의 나머지 클록 주기 동안에 데이터를 전혀 출력하지 않을 것이며, 그 결과, 데이터 전송이 비효율적이게 된다. 이 문제는 버스트 길이를 길게함으로써 해소될 수 있다.
도 39는 본 발명의 원리를 설명하기 위한 도면이고, 버스트 길이가 4인 예를 도시하고 있다. 이 예에서는, 이전의 경우와 같이, 두 개의 외부 포트의 외부 명령 주기는 3회의 내부 동작 주기를 수용할 수 있는 길이로 설정된다. 또한, 1회의 외부 명령 주기는 4회의 클록 주기에 상응한다. 데이터는 단일의 외부 명령 주기 동안에 클록과 동기하여 외부 포트로부터 네 번 출력된다. 따라서, 2회의 외부 명령 주기의 클록 주기의 수에 따라서 버스트 길이가 설정되면, 두 개의 포트 모두에서 공차가 없는 판독 동작이 달성되고, 그 결과, 데이터 전송 속도를 상당히 높히게 된다. 이 경우에 있어서, 버스트 길이 만큼의 데이터 아이템은 단일의 액세스에 응답하여 메모리 어레이로(부터) 내부적으로 입출력되는 것이 필요하다. 예컨대, 외부 포트의 데이터 입출력 핀의 수가 4 개이고, 버스트 길이는 4이면, 16 비트 데이터가 단일의 액세스 동작에 의하여 메모리 어레이로(부터) 입출력되는 것을 보증하여야 한다.
A 포트와 B 포트가 동기로 동작하지 않아도 되고 개개의 외부 명령 주기는 최소 주기가 3회의 내부 동작 주기에 필요한 기간과 같게 설정되는 한 임의의 타이밍으로 각각 독립하여 설정될 수 있음을 주목하여야 한다.
또한, 외부 포트의 수는 몇 개라도 가능하다. 외부 포트의 수가 n 개로 설정되면, 각 포트의 외부 명령 주기는 n+1회의 내부 동작 주기가 수행될 수 있는 만큼의 최소 주기로 설정된다. 이 필요 조건이 만족되면, 리프레시 동작이 수행되더라도 외부 명령 주기 중에 개개의 포트로부터 요구되는 모든 동작을 수행할 수 있게 되고, 그 결과, 리프레시 동작을 전혀 고려하지 않아도 다중 포트 메모리를 이용할 수 있게 된다.
도 40 및 도 41은 2 포트, 3 포트 및 n 포트의 경우에 있어서 최소 외부 명령과 내부 동작 주기간의 관계를 도시하는 도면이다.
도면에 도시한 바와 같이, 포트의 수가 2 개이면, 최소 명령 주기는 3 개의 내부 동작을 수용하는 길이를 갖고, 포트의 수가 3 개이면, 최소 외부 명령 주기는 4 개의 내부 동작이 가능한 시간 간격이다. 또한, 포트의 수가 n 개이면, 최소 외부 명령 주기는 n+1 개의 내부 동작이 수행될 수 있는 시간 길이와 같다.
도 42와 도 43a 내지 도 43c는 본 발명의 실시예에 따른 다중 포트 메모리의 구성을 도시하는 도면이다. 도 42는 DRAM 코어와 그의 관련 회로를 도시하고 있고, 도 43a는 A 포트를 도시하고 있으며, 도 43b는 B 포트를 도시하고 있다. 또한, 도 43c는 리프레시 회로를 도시하고 있다. 도 43a 내지 도 43c에 도시한 회로는 도 42의 각 부분에 접속되어 있다.
도면에 도시한 바와 같이, 이 실시예의 다중 포트 메모리는 DRAM 코어(2011), 동작 순서를 판단하고 동작이 미리 결정된 순서로 수행되는 것을 보증하도록 제어하기 위한 중재기(2026), 명령, 어드레스 및 데이터를 임시적으로 기억하는 레지스터 세트, A 포트(2030)와 B 포트(2040)로 이루어진 두 개의 외부 포트 및 리프레시 회로(2050)를 포함하고 있다.
A 포트(2030)와 B 포트(2040)는 모드 레지스터(2031 및 2041),(CLK 버퍼(2032 및 2042), 데이터 I/O 회로(2033 및 2043), 어드레스 입력 회로(2034 및 2044) 및 명령 입력부(2035 및 2045)를 각각 포함하고 있다. 이들은 장치의 외부로부터 공급된 개객의 각 클록 주파수를 기초로 하여 동작한다. 데이터 대기 시간과 버스트 길이는 모드 레지스터(2031 및 2041)에 기억되므로, 그들은 개별적으로 설정될 수 있다. 데이터 I/O 회로(2033 및 2043)에는 버스트 길이에 따라 입출력 데이터의 병렬 직렬 변환과 직렬 병렬 변환을 수행하는 메카니즘이 창착된다.
리프레시 회로(2050)는 리프레시 타이머(2051)와 리프레시 명령 발생기(2052)를 포함하고 있다. 리프레시 타이머(2051)는 리프레시 개시 신호를 미리 결정된 기간에 발생하고, 리프레시 명령 발생기(2052)는 그에 응답하여 리프레시 명령을 발생한다.
A 포트와 B 포트에 공급된 명령, 어드레스 및 기록 데이터는 각각 레지스터들에 기억된다. 또한, 리프레시 명령은 리프레시 명령 레지스터(2027)에 기억되고, 리프레시 어드레스는 리프레시 어드레스 카운터/레지스터(2018)에 기억된다.
중재기(2026)는 명령의 도달 순서를 기초로 하여 명령 실행 순서를 판단하고, 명령들을 미리 결정된 순서로 DRAM 코어(2011)의 제어 회로(2014)에 전송한다. 또한, 중재기(2026)는 전송 신호를 상응하는 어드레스 레지스터와 상응하는 데이터 레지스터에 전달한다(기록 동작의 경우에). DRAM 코어(2011)에 있어서, 제어 회로(2014)는 공급된 명령에 응답하고, 따라서 복호기(2013), 기록 증폭기(WriteAmp)(2015) 및 센스 버퍼(2016)를 제어하며, 그 결과, 메모리어레이(2012)에 대하여 액세스 동작을 수행한다. 기록 동작의 경우에, 복호기(2013)는 메모리 어레이(2012) 내의 워드선과 열 신호선을 활성화하도록 기록 동작에 대하여 액세스될 어드레스를 복호화하고, 그 결과, Write 데이터 레지스터 A(2022)와 B(2023)에 기억된 기록 데이터는 WriteAmp(2015)를 통하여 메모리 어레이(2015)에 기록된다. 판독 동작의 경우에, 메모리 어레이(2012)는 마찬가지로 액세스되고, 그 결과, 판독 데이터는 센스 버퍼(2016)로부터 전송 게이트 A(2024)와 B(2025)를 통하여 개개의 포트의 데이터 출력 회로로 전송된다. 전송 게이트의 전송 타이밍은 DRAM 코어(2011)의 동작 주기에 따라 제어되고, 제어 회로(2014)에 의하여 판단된다. 출력 데이터는 상응하는 외부 클록에 동기하여 각 포트의 데이터 출력 회로로부터 출력된다.
다음에, 명령 처리, 어드레스 처리 및 데이터 처리의 각각에 관련된 세부에 관하여 설명한다.
도 44 및 도 45는 제1 실시예에 따른 명령 처리에 관련된 부(部)의 구성을 도시하는 도면이다. 도 42 및 도 43a 내지 도 43c의 구성 요소와 동일한 구성 요소는 동일한 참조 부호를 붙인다. 다른 도면의 경우에도 동일하게 적용된다.
도 44에 도시한 바와 같이, A 포트의 명령 입력부(2035)는 입력 버퍼(2036), 명령 복호기(2037) 및 (n-1) 클록 지연기(2038)를 포함하고 있고, B 포트의 명령 입력부(2045)는 입력 버퍼(2046), 복호기(2047) 및 (m-1) 클록 지연기(2048)를 포함하고 있다. 여기에서, n과 m은 버스트 길이이다. 또한, 도 45에 도시한 바와 같이, 명령 레지스터 A(2028)는 Read 명령 레지스터(AR)와 Write 명령 레지스터(AW)를 포함하고 있는 명령 레지스터 B(2029)는 Read 명령 레지스터(BR)와 Write 명령 레지스터(BW)를 포함하고 있다.
입력 버퍼(2036 및 2046)는 개개의 클록(CLKA1 및 CLKB1)과 동기하여 공급된 Read 명령을 획득하고, 명령 복호기(2037 및 2047)는 복호화 처리를 수행한다. 명령 복호기(2037 및 2047)은 판독 명령의 경우에 각각(RA)1 및 RB1을 발생하고, 기록 명령의 경우에 각각 WA1 및 WB1을 발생한다. 신호(RA1 및 RB1)는 타이밍 조작이 전혀 없어도 각각 Read 명령 레지스터(AR 및 BR)에 전달되고, 반면에 신호(WA1 및 WB1)는 버스트 데이터의 최종 데이터 아이템이 입력될 때까지 (n-1) 클록 지연기(2038)와 (m-1) 클록 지연기(2048)에 의하여 지연되고, 이어서 각각 Write 명령 레지스터(AW 및 BW)에 전달된다. 또한, 리프레시 회로(2050)에 의하여 발생된 리프레시 명령(REF1)은 리프레시 명령 레지스터(2027)에 전달된다.
중재기(2026)는 명령이 이들 다섯 개의 명령 레지스터(AR, AW, BR, BW 및 2027)에 전송되는 순서를 검출하고, 이들 명령을 검출된 순서로 차례 차례로 DRAM 제어 회로(2014)에 전송한다. DRAM 제어 회로(2014)는 수신된 명령을 실행하고, 중재기(2026)에 요구하기 위한 신호(RESET1)를 발생하여, 명령 실행이 끝나거나 종료에 가까워지는 경우에 다음 명령을 전송한다. RESET1 신호에 응답하여, 중재기는 실행된 명령이 기억되는 명령 레지스터를 리셋하고, 후속 명령을 DRAM 제어 회로(2014)에 전달한다.
도 46은 중재기(2026)의 일 실시예이다. 도 45의 다섯 개의 명령 레지스터에 명령이 도달하는 순서는 도면에 도시한 바와 같이 비교기(2053)에 의하여 검출된다. 각 비교기(2053)는 두 개의 명령 레지스터의 타이밍들을 비교하고, "H"가 먼저 입력되는 쪽에서 출력을 "H"로 변경시킨다. AND 게이트(2054)는, 관련된 비교기(2053)의 모든 해당 출력이 "H"인지의 여부를 검사함으로써 소정의 명령이 다른 네 개의 모든 명령에 앞서 입력되는 지의 여부를 판단한다. 개개의 명령에 상응하는 신호(RA3, WA3, RB3, WB3 및 REF)는 상응하는 명령이 가장 빠른 경우에 "H"로 되고, 상응하는 명령 등의 어드레스가 DRAM 코어(2011)에 전달된다. 명령이 DRAM 코어(2011)에 의하여 실행되는 경우에, 신호(RESET1)는 DRAM 코어(2011)로부터 발생되고, 실행된 명령의 명령 레지스터를 리셋하기 위한 신호(RsetRA, ResetWA 등)가 발생된다. 실행된 명령의 명령 레지스터가 리셋될 때, 이 실행된 명령을 수신하는 비교기(2053)의 출력은 변경되고, 순서상 다음의 명령은 DRAM 코어(2011)에 전달될 것이다. 이와 같이 하여, 명령은 명령 입력의 순서로 실행된다.
도 47은 제1 실시예에 따라 어드레스 처리에 관련된 부분의 구성을 도시하는 도면이다. 이하, 신호명의 말미에 "P"자를 붙인 신호는 상응하는 신호명의 신호의 상승 에지로부터 행해진 펄스를 갖는 신호를 나타낸다. 도면에 도시한 바와 같이, 어드레스 입력 회로(2034 및 2044)는 각각 입력 버퍼(2057A 및 2057B)와 전송 게이트(2058A 및 2058B)를 포함하고 있다. 또한, 어드레스 레지스터 A(2019)와 어드레스 레지스터 B(2020)는 어드레스 래치(A1 및 B1), 전송 게이트(2060A 및 2060B), 어드레스 래치(A2 및 B2), 전송 게이트(2062A 및 2062B) 및 전송 게이트(2063A 및 2063B)를 각각 포함하고 있다. 전송 게이트(2062A, 2062B, 2063A 및 2063B)로부터 공급된 어드레스는 어드레스 버스(2017)를 통하여 DRAM 코어(2011)에 전달된다. 또한, 리프레시 어드레스 카운터/레지스터(2018)로부터 공급된 리프레시 어드레스는 전송 게이트(2064) 및 어드레스 버스(17)를 통하여 DRAM 코어(2011)에 전달된다.
Read 명령과 Write 명령이 장치의 외부로부터 입력되는 경우에, 입력 명령과 함께 동시에 입력 버퍼(2057A 또는 2057B)에 공급된 어드레스는 각각 전송 게이트(2058A 또는 2058B)를 통하여 어드레스 래치(A1 또는 B1)에 전달된다. Read 명령의 경우에, 어드레스는 명령을 DRAM 코어에 전송하는 것과 동기하여 전송 게이트(2063A 또는 2063B)를 통하여 DRAM 코어(2011)에 전송된다. Write 명령의 경우에, 어드레스는 최종 데이터 획득의 타이밍에 어드레스 래치(A2 또는 B2)에 더 전달되고, 이어서, 명령을 DRAM 코어에 전송하는 것과 동기하여 전송 게이트(2062A 또는 2062B)를 통하여 DRAM 코어(2011)에 전송된다. 또한, 리프레시 어드레스 카운터/레지스터(2018)는 리프레시 어드레스를 발생하고 내부에 유지하며, 이어서, 이것은 리프레시 명령을 DRAM 코어에 전송하는 것과 동기하여 전송 게이트(2064)를 통하여 DRAM 코어(2011)에 전달된다.
도 48은 제1 실시예에 따라 출력하는 데이터에 관련된 부분의 구성을 도시하는 도면이다. 도 49는 도 48의 전송 신호 발생 회로를 도시하는 도면이다. A 포트(2030)과 B 포트(2040)의 개개의 데이터 I/O 회로(2033 및 2043)는 각각 데이터 출력용 회로(2065A 및 2065B)와 데이터 입력용 회로(2074A 및 2074B)를 포함하고 있고, 이들에 관하여는 후술한다. 도면에 도시한 바와 같이, 센스 버퍼(2016)를 통하여 메모리 어레이(2012)로부터 판독된 데이터는 각각 데이터 버스(2021)와 전송 게이트(2024 및 2025)를 통하여 데이터 출력용 회로(2065A 또는 2065B)에 전달된다.
데이터 출력용 회로(2065A 또는 2065B)는 데이터 래치(A1 및 B1), 전송 신호 발생 회로(2067A 및 2067B), 전송 게이트(2069A 및 2069B), 데이터 래치(A2 및 B2) 및 출력 버퍼(2071A 및 2071B)를 각각 포함하고 있다.
전송 게이트(2024 및 2025)는 내부 동작을 기초로 하여 DRAM 코어(2011)의 제어 회로(2014)에 의하여 제어된다. 실행된 명령이 Read-A(즉, A 포트에 대한 판독 동작)이면, 전송 게이트(2024)가 개방될 것이다. 실행된 명령이 Read-B이면, 전송 게이트(2025)가 개방될 것이다. 데이터 래치(A1 및 B1)는 데이터를 내부에 기억하고, 이어서 그 데이터는 미리 결정된 대기 시간에 개개의 데이터 래치(A2 및 B2)에 전달되는데, 그 시기는 이러한 대기 시간이 전송 게이트(2068A 및 2068B)의 동작을 통하여 안내되는 개개의 포트에서 Read 명령을 수신한 이후이다. 이어서, 데이터는 병렬 직렬 변환기(2070A 및 2070B)에 의하여 변환되고, 이어서 각각 출력 버퍼(2071A 및 2071B)에 전송되어 그로부터 출력된다.
도 49에 도시한 바와 같이, 전송 신호 발생 회로(2067A 및 21067B)는 일련의 플립플롭(2072)를 채용하여 대기 시간 설정에 의하여 판단된 클록 주기수만큼 개개의 Read 명령(RA1 및 RB1)을 지연시키며, 그 결과, 데이터 전송 신호(2002)를 발생한다. 전송 게이트(2068A 및 2068B)로부터의 판독 데이터의 전송은 데이터 전송 신호(2002)에 응답하므로, 판독 데이터는 대기 시간과 동등한 클록 주기만큼 판독 동작의 타이밍으로부터 지연되는 것을 끝마친다.
도 50은 제1 실시예에 따라 입력하는 데이터에 관련된 부분의 구성을 도시하는 도면이다. 데이터 입력용 회로(2074A 및 2074B)는 데이터 입력(Din) 버퍼(2075A 및 2075B), 직렬 병렬 변환기(2076A 및 2076B) 및 데이터 전송부(2077A 및 2077B)를 각각 포함하고 있다. 데이터 전송부(2077A 및 2077B)로부터의 기록 데이터는 각각 Write 데이터 레지스터(2022 및 2023), 데이터 전송부(2078A 및 2078B) 및 데이터 버스(21)를 통하여 WriteAmp(2015)에 전송되고 메모리 어레이(2012)에 기록된다.
직렬 입력 데이터는 버스트 길이에 따라 직렬에서 병렬로 변환되고, 이어서 최종 데이터 아이템이 입력되는 타이밍에 Write 레지스터(2022 및 2023)에 전달된다. Write 명령이 중재기(2026)로부터 DRAM 코어(2011)에 전달될 때, 상응하는 데이터는 데이터 전송 게이트(2078A 또는 2078B)를 통하여 DRAM 코어(2011)에 전달될 것이다.
도 51 내지 도 58은 제1 실시예의 다중 포트 메모리의 동작을 도시하는 타이밍도이다. 도 51 및 도 52, 도 54 및 도 55, 그리고 도 57 및 도 58은 적절한 설명을 위하여 단일의 타이밍도를, 하나는 타이밍도의 전반을 도시하고 다른 것들은 후반을 도시하되 이들은 일부가 겹치는 도면들이다.
도 51 및 도 52는 두 개의 포트에 Read 명령이 연속해서 입력되는 경우에 수행되는 동작을 도시하고 있다. 주파수가 서로 다른 개개의 클록(CLKA 및 CLKB)가 제공되는 A 포트와 B 포트는 수신된 클록과 동기하여 명령, 어드레스 및 기록 데이터를 받아 들이고, 호출된 데이터를 클록과 동기하여 출력한다. 이 예에서, A 포트는 최대 클록 주파수로 동작하고, B 포트는 약간 낮은 클록 주파수로 동작한다. A포트의 경우, Read 명령=4(CLKA), 데이터 대기 시간=4 및 버스트 길이=4이다. B 포트의 경우, Read 명령=2(CLKB), 데이터 대기 시간=2 및 버스트 길이=2이다. 데이터 대기 시간과 버스트 길이는 개개의 포트의 모드 레지스터(2031 및 2041)에 설정되어 있다. 이 예에서, 데이터의 입출력은 하나의 명령에 응답하여 클록과 동기로 4 번 수행되고, 호출된 데이터는 판독 명령의 입력 후에 4회의 클록으로 출력된다.
포트 A 및 포트 B에 공급된 명령은 각각 명령 레지스터(2028 및 2029)에 기억된다. 리프레시 타이머(2051)가 신호를 발생하는 경우에, 리프레시 명령 레지스터(2027)는 내부에 리프레시 명령을 기억한다. 중재기(2026)는 이들 명령 레지스터를 감시하고, 이들 명령을 그들이 발생되는 순서로 DRAM 코어(2011)에 전달한다. 다음의 명령은 최종 전달된 명령의 처리가 완료된 후에 전달된다. DRAM 코어(2011)로부터 판독된 데이터는 센스 버퍼(2016)로부터 개개의 포트의 데이터 래치(2069A 및 2069B)에 전달되고, 이어서 병렬 데이터에서 직렬 데이터로 변환되며, 이어서 개개의 외부 클록과 동기하여 버스트 데이터로서 출력되다.
도면에 도시한 바와 같이, 명령(Read-A2)은 Read 명령 레지스터(AR)로 입력되고, 명령(Read-B2)은 Read 명령 레지스터(BR)로 입력된다. 이것의 이전에, 리프레시가 1회 발생하고, 리프레시 명령은 리프레시 명령 레지스터에 입력된다. 명령 발송의 순서에 따라, 중재기(2026)는 이들 명령을 Read-A2->Ref->Read-B2의 순서로 DRAM 코어(2011)에 전달하고, 이어서 이들 명령은 코어에 의하여 실행된다. 리프레시 동작이 내부적으로 수행되는 경우에도, 외부적으로는 미리 결정된 데이터 대기 시간 이후에 데이터가 출력되는 것처럼 보인다. 따라서, 리프레시 동작을 전혀 고려할 필요가 없다.
도 53은 전술한 조건과 동일한 조건 하에서 Write 명령이 연속해서 입력되는 예를 도시하고 있다. Write 동작의 타이밍에 장치의 외부로부터 입력된 데이터는 버스트 입력의 형태로 주어진다. Write 명령은 최종 데이터 편이 입력되는 타이밍에 Write 명령 레지스터(AW)에 기억된다. 이 경우에도, 리프레시 명령이 발생되어 내부적으로 실행되는 경우라도 리프레시 동작을 전혀 고려할 필요가 없다.
도 54 및 도 55는 A 포트와 B 포트 모두가 최대 클록 주파수로 Read 동작에 대하여 동작하는 경우에 수행되는 동작을 도시하고 있다. 도 56은 A 포트와 B 포트 모두가 최대 클록 주파수로 Write 동작에 대하여 동작하는 경우에 수행되는 동작을 도시하고 있다. 이 경우, 양쪽 포트의 클록에는 위상차가 존재할 수 있다. 양쪽 포트에 대하여, Read 명령 주기=4, Write 명령 주기=4, 데이터 대기 시간=4 및 버스트 길이=4이다. 도면으로부터 알 수 있는 바와 같이, 동작은 이 경우에도 적절히 수행된다.
도 57 및 도 58은 양쪽 포트가 최고 주파수로 동작하고 리프레시 명령이 내부적으로 발생될 때 Write 명령에서 Read 명령으로의 변경을 수행하는 경우에 수행되는 동작을 도시하는 타이밍도이다. 이것은 명령이 가장 붐비는 경우이다.
설명한 바와 같이, DRAM 코어(2011)는 공차가 전혀 없이 Ref->Write-A1->Write-B1->Read-A2->Read-B2의 순서로 동작한다. 이 예에서, Read-A2 및 Read-B2는 Write 명령의 입력 이후에 6 클록으로 입력된다. 이들 타이밍이 2회 클록만큼 앞서 있는 경우에도, DRAM 코어의 내부 동작을 앞설 수는 없다. 판독 데이터의 출력 타이밍은 Read 명령의 입력으로부터의 데이터 대기 시간에 의하여 제어된다. Read-A2 및 Read-B2의 입력 타이밍이 앞선다면, 데이터 출력 타이밍도 전방향으로 진행할 필요가 있다. 이 경우, Read-B2에 응답하는 데이터 출력 타이밍은 DRAM 코어 동작의 개시에 너무 가까워지므로, Read-B2는 적절히 실행되지 못한다. 이 때문에, Write->Read 전이의 명령 기간은 이 예에서와 같은 6회의 클록 등의 비교적 길게 설정될 필요가 있다.
Read->Write의 명령 기간의 경우, Write 데이터는 Read 데이터의 출력이 완료되지 않으면 DQ 단자에 입력되지 못하므로, 불가피하게 명령 기간은 길어진다.
도 59a 및 도 59b는 DRAM 코어(2011)의 동작을 도시하는 도면이다. 도 59a는 Read 동작을 도시하고, 도 59b는 Write 동작을 도시한다. 도면에 도시한 바와 같이, 일련의 동작은 워드선 선택->데이터 증폭->재기록->프리챠지의 순서로 단일 명령에 응답하여 수행되고, 그 결과, 전체 동작을 완료한다.
전술한 바와 같이, 명령 기간은 제1 실시예에 있어서 Write 명령에서 Read 명령으로 명령의 전이 시간으로 연장된다. 이것은 제2 실시예에서 개선된다. 제1 실시예의 해당 명령 기간이 6회의 클록 주기인 반면에, 제2 실시예는 이것을 5회의 클록 주기로 단축할 수 있다.
본 발명의 제2 실시예의 다중 포트 메모리는 제1 실시예의 다중 포트 메모리의 구성과 유사한 구성이고, 리프레시 회로가 도 60에 도시한 구성이라는 점만이 다르다. 도 61은 제2 중재기(2083)의 회로 구성을 도시하는 도면이다.
도 60에 도시한 바와 같이, 제2 실시예의 리프레시 회로는, 도 43c의 리프레시 타이머(2051)와 리프레시 명령 발생기(2052)를 조합하는 리프레시-타이머/레프레시-명령-발생기(2081), 제2 리프레시 명령 레지스터(2082) 및 제2 중재기(2083)를 포함하고 있고, 제2 중재기(2083)로부터 출력된 리프레시 명령은 리프레시 명령 레지스터(2027)에 입력된다. 리프레시 명령 레지스터(2027)의 리프레시 명령(REF2)은 제1 실시예에서와 같이 중재기(2026)에 입력된다. 이 구성에서, 리프레시 동작의 완료 이후에 중재기(2026)에서 리프레시 명령 레지스터(2027)로 출력된 리셋 신호(ResetREF)는 또한 제2 리프레시 명령 레지스터(2082)에 공급된다.
제2 실시예의 리프레시 회로에 있어서, 제2 중재기(2083)는 리프레시 명령의 경로를 따라 설치된다. Write 명령->Read 명령의 명령 전이의 경우에서와 같이 명령이 붐비는 것이 예상되면, 중재기(2083)는 리프레시 명령을 리프레시 명령 레지스터(2027)로 전송하는 것을 지연시킨다. 제2 중재기(2083)는 Write 명령에서 Read 명령으로의 전환이 도 61에 도시한 회로 구성을이용함으로써 발생하는 지의 여부를 검사하고, 이러한 전환이 검출되면 리프레시 명령을 제2 리프레시 명령 레지스터(2082)에서 리프레시 명령 레지스터(2027)로 전송하는 것을 지연시킨다.
도 61에 도시한 바와 같이, REF 전송 금지 신호(A 및 B)는 개개의 포트에 의하여 장치의 외부로부터 공급된 Write 명령의 수신시에 비활성되고, 1회의 클록 주기 후에 활성되며, 이어서 다시 최종 데이터 아이템을 수신한 이후에 수회의 클록 주기(예컨대, 이 예에서는 3회의 클록 주기)에 다시 비활성된다. 도 61의 3CLK 지연기(2084A 및 2084B)는 플립플롭 등을 포함하고 있고, WA1 및 WB1에 의하여 각각 리셋되며, 그 결과, WA1D 및 WB1D는 지연기들을 통과하는 동안에 리셋된다. REF 전송 금지 신호(A 및 B)의 논리 AND는 REF 명령 전송 금지 신호를 발생하도록 얻어진다. 이 논리 AND를 얻는 이유는, 양쪽 포트가 Write 명령에서 Read 명령으로 전환이 일어날 때에만 이 예에서의 문제가 발생하고 한 쪽 포트만 이러한 전환이 일어날 때에는 문제가 없기 때문이다. 또한, REF 전송 금지 신호(A 및 B)가 Write 명령의 수신 이후에 1회의 클록 주기 동안에만 비활성되는 이유는 이것이 최종 데이터 아이템의 수신 이전에 리프레시 동작을 수행하도록 여분의 시간을 제공하기 때문이다. 또한, 지연기(2086)는 REF 명령 전송 금지 신호와 장치의 외부로부터 공급된 명령 사이의 상대적 타이밍들의 차를 향상시키기 위하여 클록에 관한 타이밍을 약간 지연시킬 목적으로 설치된다.
도 62 내지 도 69는 제2 중재기의 동작을 도시하는 타이밍도이다. 도 70 내지 도 72는 제2 실시예의 다중 포트 메모리의 동작을 도시하는 타이밍도이다. 도 62 및 도 63, 도 64 및 도 65, 도 66 및 도 67, 도 68 및 도 69, 그리고 도 70 및 도 71은 설명의 편의상, 단일의 타이밍도를 나누어, 하나는 타이밍도의 전반을 도시하고 다른 것은 후반을 도시하되, 그들 사이에 일부가 겹치는 도면이다.
도 62 및 도 63은 양쪽 포트가 Write->Read 명령의 전환을 행하고 REF 전송 금지 기간 중에 리프레시 타이머 작업이 발생하는 경우롤 도시하고 있다. 이 경우, 리프레시 동작(Ref)은 Read-A2 및 Read-B2의 완료 이후에 수행된다.
도 64 및 도 65는 상기의 예에서와 같이 양쪽 포트가 Write->Read 명령의 전환을 행하지만 REF 전송 금지 기간 이전에 리프레시 타이머가 발생하는 경우롤 도시하고 있다. 이 경우, Write 동작과 Read 동작은 리프레시 동작(Ref)이 수행된 이후에 수행된다.
도 66 및 도 67은 A 포트만이 Write->Read 명령 전이를 수행하고 REF 전송 금지 기간 중에는 리프레시 타이머의 작업이 발생하는 경우를 설명하고 있다. 이 경우, 리프레시 동작(Ref)은 Write 동작의 완료 이후에 수행되고, 이어서 Read 동작이 수행된다.
도 68 및 도 69는 양쪽 포트에서 Write이 계속되는 경우를 나타낸다. 이 경우, Write 명령이 최종 데이터 입력에 이어서 입력된 것보다 빠르지 않게, 3CLK 지연기(2084A 및 2084B)가 비활성된다.
도 70 및 도 71은 도 57 및 도 58에 도시한 제1 실시예의 동작에 상응하는 제2 실시예의 동작을 도시하는 타이밍도이다. Write->Read 명령 전이의 명령 기간은 제1 실시예에 비하여 6회의 클록에서 5회의 클록으로 단축된다.
도 72는 도 56에 도시한 제1 실시예의 동작을 도시하는 타이밍도이다. 리프레시 동작에 관한 명령 실행의 순서는 제1 실시예에 비하여 변경되지만, 동작은 순서대로 유지된다.
전술한 바와 같이, 제2 실시예는 어떠한 조건 하에서도 적절히 동작을 수행할 수 있고, Write 명령->Read 명령의 전이의 명령 기간을 5회의 클록 주기로 단축시킬 수 있다.
전술한 바와 같이, 본 발명에 의하여, 다중 포트 메모리는 메모리 어레이가 DRAM 코어를 기초로 하여 구성되는 경우에 리프레시 동작을 전혀 고려하지 않아도 이용될 수 있고, 그 결과, 대용량이며 이용이 용이한 다중 포트 메모리를 저비용으로 제공하게 된다.
[본 발명의 제3 형태]
다음에, 본 발명의 제3 형태에 관하여 설명한다.
다중 포트 메모리에는 여러 가지의 종류가 있다. 이하, 복수 개의 포트를 갖는 메모리에 관하여 언급하고, 개개의 포트로부터의 액세스는 공통 메모리 어레이에 대하여 서로 독립적으로 행해질 수 있다. 예컨대, 2 포트형의 다중 포트 메모리에 A 포트와 B 포트가 장착되고, 공통 메모리에 대한 판독/기록 액세스는 A 포트에 연결된 CPU-A로부터 그리고 B 포트에 접속된 CPU-B로부터 독립적으로 행해질 수 있게 된다.
이러한 종류의 다중 포트 메모리로서는 SRAM 메모리 어레이를 갖는 메모리가 공지되어 있고, 그 메모리에서는 워드선과 비트선 쌍이 중복 세트로 제공되며, 각 메모리 셀은 2 세트의 워드선과 비트선 쌍에 접속되어 있다. 그러나, 이러한 다중 포트 메모리는, 중복 세트의 워드선과 비트선 쌍이 설치될 필요가 있다는 점에서 회로 밀도가 낮다는 문제가 있다.
이를 해소하기 위하여, 다중프로세서 구성을 갖는 컴퓨터를 이용한 공유 메모리와 같은 메카니즘을 이용하는 것을 고려할 수 있다. 공유 메모리는 공통 메모리용으로 제공된 복수 개의 포트를 갖는다. 통상, SRAM이 메모리로서 이용되며, 복수 개의 포트는 각각의 IC로서 구성된다. 복수 개의 포트로부터 액세스가 동시에 행해지는 경우에, 복수 개의 포트에 응답하는 동작은 메모리 어레이가 공유용으로 되어 있기 때문에 동시에 수행될 수 없다. 이러한 문제를 방지하기 위한 가장 용이한 방법은 포트에 BUSY 신호를 발생하여, 다른 포트로부터 액세스가 행해지고 있을 때 그 포트에 대한 액세스를 방지하는 것이다. 그러나, 이것은 메모리의 이용을 제한하는 문제를 발생시킨다. 이를 감안하여, 중재기라고 부르는 중재 회로를 공통 메모리에 설치하고, 복수 개의 포트에 의하여 수신된 액세스 요구의 우선 순위를 판단한다. 메모리 어레이의 제어 회로는 우선 순위의 순서대로 액세스 요구에 응답하는 동작을 수행하도록 구성된다. 예컨대, 액세스 요구는 도달 순서, 예컨대 액세스 요구가 개개의 포트에 공급되는 순서대로 수행된다. 그러나, 이것은 다른 포트의 명령이 처리되고 있는 동안에는 새로운 명령이 실행되지 못하는 상황을 변경하지 않는다. 이러한 경우에 BUSY 신호가 전달될 필요가 있고, 또한, 메모리를 액세스하는 장치에는 BUSY 신호를 조작하는 메카니즘이 제공될 필요가 있다.
메모리 어레이는 복수 개의 포트로부터 불시에 액세스되는 것을 끝내게 된다. 이 때문에, 동일의 행 어드레스에서 연속의 열 어드레스를 연속해서 액세스하는 열 액세스 동작은 제공되지 않지만, 이러한 열 액세스는 통상 DRAM에서도 이용 가능하다. 즉, 소정의 셀이 선택되고 판독/기록 동작을 위하여 액세스되며 단일의 액세스에 응답하여 수행되는 모든 것들을 리셋한다.
공유 메모리가 구성되는 경우에, 일반적으로, 메모리 어레이로서는 종래에 SRAM이 이용된다. 그 이유는, SRAM은 고속 랜덤 액세스 동작이 가능하고, 또한, 리프레시 동작이 필요 없으므로 SRAM을 이용하기가 용이하기 때문이다. 또한, 단일 칩의 다중 포트 메모리에는 종래에 중복 세트의 워드선과 비트선 쌍이 설치되고, 보통의 SRAM 구성을 갖는 메모리 어레이를 기초로 한 단일 칩의 다중 포트 메모리는 실제로 아직 이용되지 않았다.
요약하면, 다중 포트 메모리와 공유 메모리는 SRAM을 이용하여 구성되고, 리프레시 동작을 필요로 하는 DRAM은 이용되지 않는다.
처리될 데이터의 량은 시스템이 점점 더 고성능을 제공함에 따라 증가하고, 다중 포트 메모리도 대용량이 필요하다. 따라서, SRAM보다 높은 회로 밀도를 갖는 다이내믹형 메모리 셀(DRAM) 어레이를 이용하여 다중 포트 메모리를 구성하는 것을 고려할 수 있고, 그 결과, 다중 포트 메모리는 저비용으로 대기억 용량을 갖게 된다. 그러나, 메모리 셀의 리프레시 동작은 문제가 있다.
종래의 DRAM에 있어서, 리프레시 명령은 판독/기록 명령들 사이에 장치의 외부로부터 일정한 기간으로 제공될 필요가 있다. 이를 위하여, DRAM 기반의 시스템의 제어기 장치에는 리프레시 관리를 위해 타이머 및/또는 제어 회로가 설치된다. 그러나, SRAM 기반의 다중 포트 메모리를 이용하는 시스템에는 이러한 회로가 설치되지 않는다. DRAM을 기반으로하여 메모리를 구성하는 경우에도, 종래의 다중 포트 메모리에서와 동일한 방식으로 이용 가능해야 할 필요가 있다. 즉, DRAM들로 이루어진 메모리 어레이를 갖는 다중 포트 메모리는 그 자체로 리프레시 동작을 수행할 필요가 있다.
중재기가 BUSY 신호를 출력하는 경우에, 전술한 바와 같이 메모리의 이용이 오히려 방해가 된다는 문제가 있다.
본 발명은 메모리 어레이가 DRAM 코어로 이루어진 다중 포트 메모리를 제공하는 데 목적이 있고, 리프레시 동작에 대한 어떠한 고려 없이도 이용될 수 있으며, 그 결과, 대용량이며 이용하기 용이한 다중 포트 메모리를 저비용으로 제공한다.
전술한 문제를 해소하기 위하여, 본 발명의 다중 포트 반도체 메모리 장치는 mN〈n〈m(N+1)인 각 외부 포트의 최소 입력 주기가 만족되는 한 시간 주기 동안에 m(m≥2) 번으로 n 개의 내부 동작을 수행할 수 있다.
전술한 조건은 N 개의 포트 중 각각의 최소 명령 주기가 N회의 동작 주기 더하기 단일의 내부 동작 주기보다 짧은 시간 간격(α)을 가능하게 하는 시간으로 설정된다. N=2이면, 예컨대, 각 포트의 최소 명령 외부 명령 주기는 2회의 내부 동작 주기를 가능하게 하는 시간 간격 더하기 시간 간격(α)으로 설정된다. 여기에서, 시간 간격(α)은 1회의 내부 동작 주기보다 짧다.
본 발명은 2회의 내부 동작 주기를 가능하게 하는 시간 간격을 이용하여, BUSY 신호를 출력하는 중재기에 의하여 생긴 메모리 방해 문제를 해소하며, 시간 간격(α)를 이용하여, 리프레시 동작의 문제를 해결한다.
도 73은 본 발명의 원리를 설명하기 위한 도면이고(제3 형태), 양쪽 포트에 대하여 판독 동작이 수행되는 경우를 도시하고 있다.
두 개의 외부 포트, 즉 A 포트와 B 포트에 대한 명령은 내부 동작 주기가 2.2번 수행될 수 있는 동안에 최소 기간으로 입력된다. 즉, 내부 동작 주기의 2.2번은 최소 외부 명령 주기와 같고, 외부 명령 주기는 내부 동작 주기가 2.2번 수행될 수 있는 시간 간격보다 많게 설정된다. 클록(CLKA 및 CLKB)은 각각 A 포트와 B 포트에 입력되고, 외부 포트로(부터)의 명령, 어드레스 및 데이터의 입출력은 상응하는 클록에 동기하여 수행된다. 예시하지는 않았지만, 어드레스는 명령과 동시에 입력된다. 판독 명령이 최소 외부 명령 주기로 A 포트와 B 포트에 공급될 때, 도면에 도시한 바와 같이, 중재 회로는 코어 동작을 수행할 때 먼저 도달하는 명령에 우선 순위를 부여하는 제어를 행한다.
DRAM 코어는 1회의 외부 명령 주기 동안에 메모리 어레이로부터의 데이터를 판독하기 위하여 2 개의 판독 동작을 수행하고, 데이터를 A 포트와 B 포트로 출력한다. A 포트와 B 포트는 호출된 데이터를 각각 유지하고, 그 호출된 데이터를 판독 명령의 입력으로부터 6번째 클록인 개개의 클록 신호의 특정 클록 타이밍과 동기하여 출력한다. 즉, 이 경우의 데이터 대기 시간은 6이다.
리프레시 타이머는 내부 회로서 설치되고, 그 자체에서 리프레시 명령을 발생한다. 리프레시 동작이 발생하지 않는 경우에, 장치의 내부 회로는 1회의 외부 명령 주기 동안에 명령(A 및 B)에 상응하는 두 개의 동작을 수행하도록 루틴하게 동작한다. 내부 동작은 1회의 외부 명령 주기 동안에 2.2번 수행될 수 있으므로, DRAM 코어는 두 개의 내부 동작을 완료한 이후에 남은 별도의 시간(tα)를 가질 것이다.
내부적으로 리프레시 명령이 발생되는 경우, 장치의 내부 회로는 고속으로 동작한다. 여기에서, 고속이란 별도의 시간(tα)을 생성하지 않고 동작을 수행하는 것을 의미한다. 리프레시 명령이 발생되는 경우에, 장치는 리프레시 동작을 수행한다. 그 동안에 명령이 A 포트와 B 포트에 입력되는 경우에, 처리되어야 할 명령은 누적될 것이다. 장치는 별도의 시간(tα)을 생성하지 않고 고속으로 하나씩 명령을실행한다. 명령은 하나씩 A 포트와 B 포트에 입력되지만, 리프레시 명령은 외부 명령 주기보다 긴 기간에서만 발생하고, 다음의 리프레시 명령이 발생될 때까지는 명령(A)과 명령(B)만이 실행되어야 한다. 내부 명령 처리의 속도는 보다 고속이므로, 결국에 누적된 명령은 없을 것이다. 달리 말하면, 내부 처리는 외부 명령의 입력을 받아 들일 것이다. 이후, 장치는 그의 루틴 동작으로 복귀한다. 별도의 시간(α)은 외부 포트의 수, 내부 동작 주기의 수, 리프레시 기간 등을 고려하여 결정된다.
Read 명령(RD)에 응답하여 출력되는 데이터의 지연 시간(데이터 대기 시간)은, 내부 리프레시 명령과 다른 포트에 대한 공통 입력부가 Read 명령 바로 이전에 발생할 때 타이밍이 최악으로 되므로, 내부 동작의 3회 주기로 설정(2 포트의 경우에)된다. 그러나, 2회의 내부 동작 주기보다 약간 긴 외부 명령은 모두 적절한 장치 동작을 필요로 하므로, 데이터 전송 속도는 오히려 빠르다.
전술한 바와 같이, 본 발명은 장치의 외부로부터의 리프레시 동작을 숨길 수 있고, 외부 명령 주기를 2회의 내부 동작 주기보다 약간 긴 정도로만 설정한다. 외부로부터 리프레시 제어를 행할 필요가 없고, 내부에서 리프레시 동작이 수행되는 경우에도, 외부로는 전혀 보이지 않고 장치 동작이 외부에 보이는 방법에 영향을 미치지 않는다. 따라서, 메모리로의 액세스는 다른 포트를 전혀 고려하지 않아도 각 외부 포트로부터 행해질 수 있다.
이와 같이 하여, 본 발명은 대용량과 고속 데이터 전송 속도를 갖는 DRAM 메모리 셀을 이용하는 다중 포트 메모리를 제공하고, 마치 SRAM을 기초로 하여 구성하는 것처럼 리프레시 동작을 전혀 고려하지 않아도 메모리를 이용할 수 있다.
도 73의 예에 있어서, 판독 동작의 하나의 아이템은 하나의 판독 명령에 응답하여 외부 클록과 동기하여 출력된다. 즉, 버스트 길이는 1이다. 따라서, 판독 데이터의 출력이 1회의 주기로 완료된 후, 외부 포트는 외부 명령 주기의 3회의 나머지 클록 주기 동안에 데이터를 전혀 출력하지 않을 것이며, 그 결과, 데이터 전송이 비효율적이게 된다. 이 문제는 버스트 길이를 길게함으로써 해소될 수 있다.
도 74는 본 발명의 원리를 설명하기 위한 도면이고, 버스트 길이가 4인 예를 도시하고 있다. 이 예에서는, 이전의 경우와 같이, 두 개의 외부 포트의 외부 명령 주기는 2.2회의 내부 동작 주기를 수용할 수 있는 길이로 설정된다. 또한, 1회의 외부 명령 주기는 4회의 클록 주기에 상응한다. 데이터는 6의 데이터 대기 시간을 제공하는 것과 같은 방식으로 단일의 외부 명령 주기 동안에 클록과 동기하여 외부 포트로부터 네 번 출력된다. 따라서, 2회의 외부 명령 주기의 클록 주기의 수에 따라서 버스트 길이가 설정되면, 두 개의 포트 모두에서 공차가 없는 판독 동작이 달성되고, 그 결과, 데이터 전송 속도를 상당히 높히게 된다. 이 경우에 있어서, 버스트 길이 만큼의 데이터 아이템은 단일의 액세스에 응답하여 메모리 어레이로(부터) 내부적으로 입출력되는 것이 필요하다. 예컨대, 외부 포트의 데이터 입출력 핀의 수가 4 개이고, 버스트 길이는 4이면, 16 비트 데이터가 단일의 액세스 동작에 의하여 메모리 어레이로(부터) 입출력되는 것을 보증하여야 한다.
A 포트와 B 포트가 동기로 동작하지 않아도 되고 개개의 외부 명령 주기는 최소 주기가 N회의 내부 동작 주기 더하기 단일 내부 동작 주기보다 짧은 기간(α)에 필요한 기간과 같게 설정되는 한 임의의 타이밍으로 각각 독립하여 설정될 수있음에 주목하여야 한다.
도 75 및 도 76은 2 포트, 3 포트 및 N 포트의 경우에 있어서 최소 외부 명령과 내부 동작 주기간의 관계를 도시하는 도면이다. 도면에 도시한 바와 같이, 포트의 수가 2 개이면, 최소 명령 주기는 두 개의 내부 동작 더하기 α를 가능하게 하는 3 개의 내부 동작을 수용하는 시간 길이를 갖고, 포트의 수가 3 개이면, 최소 외부 명령 주기는 3 개의 내부 동작 더하기 α를 가능하게 하는 시간 간격이다. 또한, 포트의 수가 N 개이면, 최소 외부 명령 주기는 N+1 개의 내부 동작이 수행될 수 있는 시간 길이 더하기 시간 길이 α와 같다.
도 77와 도 78a 내지 도 78c는 본 발명의 실시예에 따른 다중 포트 메모리의 구성을 도시하는 도면이다. 도 77는 DRAM 코어와 그의 관련 회로를 도시하고 있고, 도 78a는 A 포트를 도시하고 있으며, 도 78b는 B 포트를 도시하고 있다. 또한, 도 78c는 리프레시 회로를 도시하고 있다. 도 78a 내지 도 78c에 도시한 회로는 도 77의 각 부분에 접속되어 있다.
도면에 도시한 바와 같이, 이 실시예의 다중 포트 메모리는 DRAM 코어(3011), 동작 순서를 판단하고 동작이 미리 결정된 순서로 수행되는 것을 보증하도록 제어하기 위한 중재기(3026), 중재기(3026)로부터 공급된 명령들을 임시적으로 기억하고 이들 명령을 명령이 수신되는 순서로 DRAM 코어(3011)의 제어 회로(3014)에 전송하는 명령 레지스터(3025), 명령, 어드레스 및 데이터를 임시적으로 기억하는 레지스터 세트, A 포트(3030)와 B 포트(3040)로 이루어진 두 개의 외부 포트 및 리프레시 회로(3050)를 포함하고 있다.
A 포트(3030)와 B 포트(3040)는 모드 레지스터(3031 및 3041),(CLK 버퍼(3032 및 3042), 데이터 I/O 회로(3033 및 3043), 어드레스 입력 회로(3034 및 3044) 및 명령 입력부(3035 및 3045)를 각각 포함하고 있다. 이들은 장치의 외부로부터 공급된 개객의 각 클록 주파수를 기초로 하여 동작한다. 데이터 대기 시간과 버스트 길이는 모드 레지스터(3031 및 3041)에 기억되므로, 그들은 개별적으로 설정될 수 있다. 데이터 I/O 회로(3033 및 3043)에는 버스트 길이에 따라 입출력 데이터의 병렬 직렬 변환과 직렬 병렬 변환을 수행하는 메카니즘이 창착된다.
리프레시 회로(3050)는 리프레시 타이머(3051)와 리프레시 명령 발생기(3052)를 포함하고 있다. 리프레시 타이머(3051)는 리프레시 개시 신호를 미리 결정된 기간에 발생하고, 리프레시 명령 발생기(3052)는 그에 응답하여 리프레시 명령을 발생한다.
A 포트와 B 포트에 공급된 명령은 각각 명령 레지스터 A(28A)와 명령 레지스터 B(28B)에 기억된다. 어드레스는 각각 어드레스 레지스터 A(19A)와 어드레스 레지스터 B(19B)에 기억되고, 기록될 데이터는 각각Write 데이터 레지스터 A(22A)와Write 데이터 레지스터 B(22B)에 기억된다. 또한, 리프레시 명령은 리프레시 명령 레지스터(3027)에 기억되고, 리프레시 어드레스는 리프레시 어드레스 카운터/레지스터(3018)에 기억된다.
중재기(3026)는 명령의 도달 순서를 기초로 하여 명령 실행 순서를 판단하고, 명령들을 결정되는 순서로 명령 레지스터(3025)에 전송한다. 명령 레지스터(3025)는 이들 명령을 명령이 중재기(3026)로부터 수신되는 순서로 DRAM코어(3011)의 제어 회로(3025)에 송신한다. DRAM 코어가 주어진 명령을 처리할 때, 제어 회로(3014)는 다음의 명령을 수신할 수 있는 상태로 놓인다. 이에 응답하여, 명령 레지스터(3025)는 다음 명령을 제어 회로(3014)에 송신한다. 그 사이에 중재기(3026)로부터 공급되는 명령은 명령 레지스터(3025)에 임시적으로 기억된다. 또한, 명령 레지스터(3025)는 DRAM 코어(3011)의 제어 회로(3014)에 명령을 전송하는 것 이외에 전송 신호를 상응하는 어드레스 레지스터와 상응하는 데이터 레지스터에 전달한다(기록 동작의 경우에). DRAM 코어(3011)에 있어서, 제어 회로(3014)는 공급된 명령에 응답하고, 따라서 복호기(3013), 기록 증폭기(WriteAmp)(3015) 및 센스 버퍼(3016)를 제어하며, 그 결과, 메모리 어레이(3012)에 대하여 액세스 동작을 수행한다. 기록 동작의 경우에, 복호기(3013)는 메모리 어레이(3012) 내의 워드선과 열 신호선을 활성화하도록 기록 동작에 대하여 액세스될 어드레스를 복호화하고, 그 결과, Write 데이터 레지스터(A 및 B)에 기억된 기록 데이터는 WriteAmp(3015)를 통하여 메모리 어레이(3015)에 기록된다. 판독 동작의 경우에, 메모리 어레이(3012)는 마찬가지로 액세스되고, 그 결과, 판독 데이터는 센스 버퍼(3016)로부터 각각 3024A 및 3024B로 표기된 전송 게이트(A 및 B)를 통하여 개개의 포트의 데이터 출력 회로로 전송된다. 전송 게이트의 전송 타이밍은 DRAM 코어(3011)의 동작 주기에 따라 제어되고, 제어 회로(3014)에 의하여 판단된다. 출력 데이터는 상응하는 외부 클록에 동기하여 각 포트의 데이터 출력 회로로부터 출력된다.
다음에, 명령 처리, 어드레스 처리 및 데이터 처리의 각각에 관련된 세부에관하여 설명한다.
도 79 및 도 80는 제1 실시예에 따른 명령 처리에 관련된 부(部)의 구성을 도시하는 도면이다. 도 77 및 도 78a 내지 도 78c의 구성 요소와 동일한 구성 요소는 동일한 참조 부호를 붙인다. 다른 도면의 경우에도 동일하게 적용된다.
도 79에 도시한 바와 같이, A 포트의 명령 입력부(3035)는 입력 버퍼(3036), 명령 복호기(3037) 및 (n-1) 클록 지연기(3038)를 포함하고 있고, B 포트의 명령 입력부(3045)는 입력 버퍼(3046), 명령 복호기(3047) 및 (m-1) 클록 지연기(3048)를 포함하고 있다. 여기에서, n과 m은 버스트 길이이다. 또한, 도 80에 도시한 바와 같이, 명령 레지스터(A)는 Read 명령 레지스터(AR)와Write 명령 레지스터(AW)를 포함하고 있는 명령 레지스터(B)는 Read 명령 레지스터(BR)와Write 명령 레지스터(BW)를 포함하고 있다.
입력 버퍼(3036 및 3046)는 개개의 클록(CLKA1 및 CLKB1)과 동기하여 공급된 Read 명령을 획득하고, 명령 복호기(3037 및 3047)는 복호화 처리를 수행한다. 명령 복호기(3037 및 3047)은 판독 명령의 경우에 각각(RA)1 및 RB1을 발생하고, 기록 명령의 경우에 각각 WA1 및 WB1을 발생한다. 신호(RA1 및 RB1)는 타이밍 조작이 전혀 없어도 각각 Read 명령 레지스터(AR 및 BR)에 전달되고, 반면에 신호(WA1 및 WB1)는 버스트 데이터의 최종 데이터 아이템이 입력될 때까지 (n-1) 클록 지연기(3038)와 (m-1) 클록 지연기(3048)에 의하여 지연되고, 이어서 각각Write 명령 레지스터(AW 및 BW)에 전달된다. 또한, 리프레시 회로(3050)에 의하여 발생된 리프레시 명령(REF1)은 리프레시 명령 레지스터(3027)에 전달된다.
중재기(3026)는 명령이 이들 다섯 개의 명령 레지스터(AR, AW, BR, BW 및 3027)에 전송되는 순서를 검출하고, 이들 명령을 검출된 순서로 차례 차례로 DRAM 명령 레지스터(3025)에 전송한다. 중재기(26)로부터 전송된 명령의 수신시, 명령 레지스터(3025)는 명령 수신 대기 신호를 중재기(3026)에 전달한다. 명령 수신 대기 신호에 응답하여, 중재기(3026)는 다음 명령을 명령 레지스터에 전송한다.
명령 레지스터(3025)는 명령들을 차례 차례로 이들 명령이 중재기(3025)로부터 수신되는 순서로 DRAM 코어(3011)의 제어 회로(3014)에 전송한다. DRAM 코어의 제어 회로(3014)는 수신된 명령을 실행하고, 명령 실행이 종료하거나 종료에 가까워질 때 명령 수신 준비 신호를 명령 레지스터(3025)에 전달한다. 명령 수신 준비 신호에 응답하여, 명령 레지스터(3025)는 다음 명령을 제어 회로(3014)에 전달한다. 그 동안에, 중재기(3026)로부터 공급되는 명령은 명령 레지스터(3025)에 임시적으로 기억된다.
도 81은 중재기(3026)의 일 실시예이다. 도 80의 다섯 개의 명령 레지스터[Read 명령 레지스터(AR), Write 명령 레지스터(AW), Read 명령 레지스터(BR), Write 명령 레지스터(BW) 및 리프레시 명령 레지스터(3027)]에 명령이 도달하는 순서는 도면에 도시한 바와 같이 비교기(3053)에 의하여 검출된다. 각 비교기(3053)는 두 개의 명령 레지스터의 타이밍들을 비교하고, "H"가 먼저 입력되는 쪽에서 출력을 "H"로 변경시킨다. AND 게이트(3054)는, 관련된 비교기(3053)의 모든 해당 출력이 "H"인지의 여부를 검사함으로써 소정의 명령이 다른 네 개의 모든 명령에 앞서 입력되는 지의 여부를 판단한다. 개개의 명령에 상응하는신호(RA31, WA31, RB31, WB31 및 REF31)는 상응하는 명령이 가장 빠른 경우에 "H"로 되고, 명령 레지스터(3025)에 전송된다.(RA)2가(RA)2 내지 REF2 중 가장 빠른 것이면,(RA)2에 접속된 비교기는(RA)2가 접속되어 있는 측에서 출력이 "H"가 되고, 그 결과,(RA)31은 "H"가 된다. 이 특정 순간에, 명령 수신 대기 상황은 아직 않았으므로(="L"), N1="L"이고, 그 결과,(RA)3은 "H"가 된다. 따라서, 명령(RA3)이 명령 레지스터(3025)에 송신된다.
명령 레지스터(3025)는 명령의 수신시에 명령 수신 대기 신호를 발생한다. 이러한 상황이 발생하면, "L" 펄스는 노드(N1)에서 발생되고, 그 결과,(RA)1 내지 REF3은 모두 "L"로 된다. 그 동안에, ResetRA 내지 ResetREF 중 하나가 발생될 것이다.(RA)31이 "H"이면, ResetRA가 발생되고, 그 결과, Read 명령 레지스터(AR)가 리셋된다. 그에 응답하여,(RA)2는 "L"로 되고, 이어서(RA)31 내지 REF31 중 하나가 선상에서 다음 명령을 나타내는 "H"로 된다. N1이 "L" 펄스의 말미에서 "H"로 될 때, 선상의 다음 명령이 명령 레지스터(3025)에 전송된다. 전술한 동작은 이후에도 반복된다.
도 82 및 도 83은 명령 레지스터(3025)의 구성을 도시하는 도면이다. 이것은 두 개의 도면으로 분할되어 도시되어 있다.
명령 레지스터(3025)는 주로, 내부에 명령을 기억하고 이 명령을 연속해서 DRAM 코어(3011)에 출력하는 시프트 레지스터(3092)를 포함하고 있고, 중재기(3026)로부터 수신된 명령을 시프트 레지스터(3092)로 전송하는 스위치(SW1-SW3)3082-3084)를 포함하고 있다. 이 예에서, 시프트 레지스터(3092)는 3단 구성을가지며, 명령을 기억하기 위한 레지스터(3085-3087), 레지스터(3085-3087)의 기억 상태를 나타내는 플래그(3088-3090) 및 레지스터(3085-3087)의 상태를 리셋하는 리셋 데이터부(3091)를 포함하고 있다. 레지스터(3085-3087)에 명령이 기억되어 있지 않은 상태에서는, 플래그(3088-3090)는 모두 행(FL1-FL3="L")이므로, 스위치(3082)(SW1)는 접속되어 있다. 제1 명령은 SW1을 통하여 레지스터(3085)에 기억되므로, FL1은 "H"가 된다. FL1이 "H"가 되면, "H" 에지 펄스 회로(3093)는 펄스를 발생하므로, 명령 수신 대기 상황이 중재기(3026)에 전달된다.
명령 수신 준비 신호가 이 특정 순간에 DRAM 코어(3011)에 의하여 확인되면, 게이트(3097)는 개방되어 레지스터(3085)의 명령을 래치(3098)로 전송하고, 이어서 명령은 DRAM 코어(3011)의 제어 회로(3014)로 송신된다. 동시에, 명령에 상응하는 어드레스 등은 DRAM 코어(3011)에 전달된다. DRAM 코어(3011)는, 수신된 명령에 따라 동작을 개시하는 동안에는, 명령 수신 준비 신호를 취소한다. 따라서, 게이트(3097)는 폐쇄된다. 레지스터 제어 회로(3096)는, 레지스터(3086)의 데이터를 레지스터(3085)로 그리고 레지스터(3087)의 데이터를 레지스터(3086)로 이동하게 하는 시프트 신호를 발생한다. 시프트 신호의 발생 이전에 명령이 레지스터(3086)에 기억되지 않으면, 시프트 동작에 의하여 레지스터(3085)는 리셋되고 FL1은 "L"로 된다. 레지스터 제어 회로(3096)는 SW1-SW3을 접속 해제하도록 하기 위하여 시프트 신호의 발생과 함께 동시에 전송 금지 신호를 발생하고, 그 결과, 시프트 동작 중에 데이터가 시프트 레지스터(3092)로 전송되지 못하게 된다. 제1 명령(명령 1)이 SW1을 통하여 레지스터(3092)로 공급되는 경우에, DRAM코어(3011)가 선행의 명령을 실행하고 있으면 레지스터(3085)에 기억된다. FL1이 "H"로 되어 SW1을 접속 해제하고, 미리 결정된 지연 이후에 SW2를 더 접속 해제한다. 여기에서, 미리 결정된 지연은 명령 수신 대기의 발생에서부터 중재기 출력의 리셋까지의 시간 간격에 상응한다. DRAM 코어(3011)가 명령을 수신할 준비가 되기 이전에 다음 명령(명령 2)이 중재기(3026)로부터 공급되면, 명령 2는 SW2를 통하여 레지스터(3086)에 기억된다. FL2는 "H'로 되어 명령 수신 대기를 발생하고, SW2를 접속 해제하며, 이어서 미리 결정된 지연 시간 이후에 SW3을 더 접속 해제한다. DRAM 코어가 이러한 상태로 되어 명령을 수신할 수 있게 되는 경우에, 명령 수신 준비 신호가 발생되어 게이트(3097)를 개방하므로, 레지스터(3085)의 명령 1은 래치(3098)에 전달되고 이어서 DRAM 코어(3011)에 전달된다. DRAM 코어(3011)는 명령 1에 따라 동작을 개시하는 동안에 명령 수신 준비 신호를 취소한다. 이에 응답하여, 게이트(3097)는 폐쇄된다. 레지스터 제어 회로(3096)는 시프트 신호를 발생하고, 이 신호는 레지스터(3086)의 명령 2를 레지스터(3085)로 시프트시키며, 또는 레지스터(3087)의 내용(리셋 상태)을 레지스터(3086)로 시프트시킨다. 레지스터(3085)는 명령 2를 기억하는 것을 마치고, 레지스터(3086 및 3087)는 리셋 상태로 있는 것을 마친다. FL1은 "H"이고 FL2 및 FL3은 "L"이므로, SW2는 접속되고 SW1 및 SW3은 접속 해제된다.
리셋 데이터부(3091)는 좌반부 상에서 시프트 레지스터(3092)의 레지스터(3087)에 접속된다. 이 구성은, 명령이 모두 레지스터(3087)까지 모두 기억될 때 후속의 시프트 신호에 의하여 레지스터(3087)의 명령을 레지스터(3086)로시프트시키기 위하여 제공된다. 이와 같이 하여, 명령 레지스터(3025)는 중재기(3026)로부터 전송된 명령을 임시적으로 누적시키고, DRAM 코어(3011)의 상태를 검출하며, 이어서 명령을 차례 차례로 전달한다.
명령 발생 검출 신호는 레지스터 제어 회로(3096)에 입력된다. 명령 발생 검출 신호는 명령이 중재기(3026)로부터 전달될 때 발생된다. 도 84a 및 도 84b는 레지스터 제어 회로(3096)의 동작을 도시한다. 시프트 신호 및 전송 금지 신호는 레지스터 제어 회로(3096)에 대한 명령 수신 준비 신호가 비활성화될 때 발생된다. 명령 수신 준비 신호가 비활성화되기 바로 이전에 명령이 중재기(3026)로부터 전달되는 경우에, 명령 수신 준비 신호는 비활성화되지만, 보다 빨리 수신된 명령을 시프트 레지스터(3092)에 전달한 이후에만 시프트 동작을 수행하는 것이 바람직하다. 그 때문에, 명령 수신 준비 신호의 하강 에지와 명령 발생 검출 신호의 상승 에지 중 어느 것이 보다 빠른 지에 관하여 비교가 행해진다. 전자가 더 빠르면, 시프트 신호와 전송 금지 신호가 전자의 하강 에지에 응답하여 발생되고, 후자가 더 빠르면, 시프트 신호와 전송 금지 신호가 후자의 신호의 하강 에지에 응답하여 발생된다.
도 85 및 도86은 명령 레지스터(3025)의 동작을 도시하는 도면이다. 여기에서는 입력 명령이 가장 붐비는 타이밍 조건을 나타내는 Write->Read 명령 전이의 시기에 리프레시 명령이 발생되는 경우를 고려하여 설명한다. 도면에 도시한 SW1 내지 SW3의 수는 접속되어 있는 SW를 나타내고, SW가 접속되어 있는 기간이 설명된다. 또한, 레지스터(1 내지 3)는 각각 레지스터(3085 내지 3087)에 상응한다.
도 87은 실시예에 따라 어드레스 처리에 관련된 부분의 구성을 도시하는 도면이다. 이하, 신호명의 말미에 "P"자를 붙인 신호는 상응하는 신호명의 신호의 상승 에지로부터 행해진 펄스를 갖는 신호를 나타낸다. 도면에 도시한 바와 같이, 어드레스 입력 회로(3034 및 3044)는 각각 입력 버퍼(3057A 및 3057B)와 전송 게이트(3058A 및 3058B)를 포함하고 있다. 또한, 어드레스 레지스터(3019A)와 어드레스 레지스터(3020B)는 어드레스 래치(A1 내지 A4 및 B1 내지 B4), 전송 게이트(3059A 내지 3063A 및 3059B 내지 3063B)를 각각 포함하고 있다. 전송 게이트(3062A, 3062B, 3063A 및 3063B)로부터 공급된 어드레스는 어드레스 버스(3017)를 통하여 DRAM 코어(3011)에 전달된다. 또한, 리프레시 어드레스 카운터/레지스터(3018)로부터 공급된 리프레시 어드레스는 전송 게이트(3064) 및 어드레스 버스(3017)를 통하여 DRAM 코어(3011)에 전달된다.
Read 명령과Write 명령이 장치의 외부로부터 입력되는 경우에, 입력 명령과 함께 동시에 입력 버퍼(3057A 또는 3057B)에 공급된 어드레스는 각각 전송 게이트(3058A 또는 3058B)를 통하여 어드레스 래치(A1 또는 B1)에 전달된다. Read 명령의 경우에, 어드레스는 명령을 DRAM 코어에 전송하는 것과 동기하여 전송 게이트(3061A 내지 3063A 또는 3061B 내지 3063B) 및 어드레스 래치(A4 또는 B4)를 통하여 DRAM 코어(3011)에 전송된다. Write 명령의 경우에, 어드레스는 최종 데이터 획득의 타이밍에 어드레스 래치(A2 또는 B2)에 더 전달되고, 이어서, 명령을 DRAM 코어에 전송하는 것과 동기하여 전송 게이트(3062A 또는 3062B)를 통하여 DRAM 코어(3011)에 전송된다. 또한, 리프레시 어드레스 카운터/레지스터(3018)는 리프레시어드레스를 발생하고 내부에 유지하며, 이어서, 이것은 리프레시 명령을 DRAM 코어에 전송하는 것과 동기하여 전송 게이트(3064)를 통하여 DRAM 코어(3011)에 전달된다.
도 88은 실시예에 따라 출력하는 데이터에 관련된 부분의 구성을 도시하는 도면이다. 도 89는 도 88의 전송 신호 발생 회로를 도시하는 도면이다. A 포트(3030)과 B 포트(3040)의 개개의 데이터 I/O 회로(3033 및 3043)는 각각 데이터 출력용 회로(3065A 및 3065B)와 데이터 입력용 회로(3074A 및 3074B)를 포함하고 있고, 이들에 관하여는 후술한다. 도면에 도시한 바와 같이, 센스 버퍼(3016)를 통하여 메모리 어레이(3012)로부터 판독된 데이터는 각각 데이터 버스(3021)와 전송 게이트(3024A 또는 3024B)를 통하여 데이터 출력용 회로(3065A 또는 3065B)에 전달된다.
데이터 출력용 회로(3065A 또는 3065B)는 데이터 래치(A1 및 B1), 전송 신호 발생 회로(3067A 및 3067B), 전송 게이트(3068A 및 3068B), 데이터 래치(A2 및 B2) 및 출력 버퍼(3071A 및 3071B)를 각각 포함하고 있다.
전송 게이트(3024A 및 3024B)는 내부 동작을 기초로 하여 DRAM 코어(3011)의 제어 회로(3014)에 의하여 제어된다. 실행된 명령이 Read-A(즉, A 포트에 대한 판독 동작)이면, 전송 게이트(3024A)가 개방될 것이다. 실행된 명령이 Read-B이면, 전송 게이트(3024B)가 개방될 것이다. 데이터 래치(A1 및 B1)는 데이터를 내부에 기억하고, 이어서 그 데이터는 미리 결정된 대기 시간에 개개의 데이터 래치(A2 및 B2)에 전달되는데, 그 시기는 이러한 대기 시간이 전송 게이트(3068A 및 3068B)의동작을 통하여 안내되는 개개의 포트에서 Read 명령을 수신한 이후이다. 이어서, 데이터는 병렬 직렬 변환기(3070A 및 3070B)에 의하여 변환되고, 이어서 각각 출력 버퍼(3071A 및 3071B)에 전송되어 그로부터 출력된다.
도 89에 도시한 바와 같이, 전송 신호 발생 회로(3067)(예컨대, 3067A 또는 3067B)는 일련의 플립플롭(3072)를 채용하여 대기 시간 설정에 의하여 판단된 클록 주기수만큼 개개의 Read 명령(RA1 또는 RB1)을 지연시키며, 그 결과, 데이터 전송 신호(3002)를 발생한다. 전송 게이트(3068A 및 3068B)로부터의 판독 데이터의 전송은 데이터 전송 신호(3002)에 응답하므로, 판독 데이터는 대기 시간의 설정과 동등한 클록 주기만큼 판독 동작의 타이밍으로부터 지연되는 것을 끝마친다.
도 90 및 도 91은 실시예에 따라 입력하는 데이터에 관련된 부분의 구성을 도시하는 도면이다. 데이터 입력용 회로(3074A 및 3074B)는 데이터 입력(Din) 버퍼(3075A 및 3075B), 직렬 병렬 변환기(3076A 및 3076B) 및 데이터 전송부(3077A 및 3077B)를 각각 포함하고 있다. 데이터 전송부(3077A 및 3077B)로부터의 기록 데이터(WDA 및 WDB)는 각각 제1Write 데이터 레지스터(3078A 및 3078B), 데이터 전송부(3079A 및 3079B), 제2Write 데이터 레지스터(3080A 및 3080B), 데이터 전송 게이트(3081A 및 3081B) 및 데이터 버스(3021)를 통하여WriteAmp(3015)에 전송되고 메모리 어레이(3012)에 기록된다.
직렬 입력 데이터는 버스트 길이에 따라 직렬에서 병렬로 변환되고, 이어서 최종 데이터 아이템이 입력되는 타이밍에 제1Write 레지스터(3078A 및 3078B)에 전달된다. Write 명령이 명령 레지스터(3025)로부터 DRAM 코어(3011)에 전달될 때,상응하는 데이터는 DRAM 코어(3011)에 전달될 것이다.
도 92 내지 도 99는 제1 실시예의 다중 포트 메모리의 동작을 도시하는 타이밍도이다. 도 92 및 도 93, 도 95 및 도 96, 그리고 도 98 및 도 99는 적절한 설명을 위하여 단일의 타이밍도를, 하나는 타이밍도의 전반을 도시하고 다른 것들은 후반을 도시하되 이들은 일부가 겹치는 도면들이다.
도 92 및 도 93은 두 개의 포트에 Read 명령이 연속해서 입력되는 경우에 수행되는 동작을 도시하고 있다. 주파수가 서로 다른 개개의 클록(CLKA 및 CLKB)가 제공되는 A 포트와 B 포트는 수신된 클록과 동기하여 명령, 어드레스 및 기록 데이터를 받아 들이고, 호출된 데이터를 클록과 동기하여 출력한다. 이 예에서, A 포트는 최대 클록 주파수로 동작하고, B 포트는 약간 낮은 클록 주파수로 동작한다. A 포트의 경우, Read 명령=4(CLKA), 데이터 대기 시간=6 및 버스트 길이=4이다. B 포트의 경우, Read 명령=2(CLKB), 데이터 대기 시간=3 및 버스트 길이=2이다. 데이터 대기 시간과 버스트 길이는 개개의 포트의 모드 레지스터(3031 및 3041)에 설정되어 있다. A 포트에 대하여, 데이터의 입출력은 하나의 명령에 응답하여 클록과 동기로 6 번 수행되고, 호출된 데이터는 판독 명령의 입력 후에 4회의 클록 주기로 출력된다. B 포트에 대하여, 데이터의 입출력은 하나의 명령에 응답하여 클록과 동기로 2 번 수행되고, 호출된 데이터는 판독 명령의 입력 후에 3회의 클록 주기로 출력된다.
포트 A 및 포트 B에 공급된 명령은 각각 명령 레지스터(3028A 및 3028B)에 기억된다. 리프레시 타이머(3051)가 신호를 발생하는 경우에, 리프레시 명령 레지스터(3027)는 내부에 리프레시 명령을 기억한다. 중재기(3026)는 이들 명령 레지스터를 감시하고, 이들 명령을 그들이 발생되는 순서로 명령 레지스터(3025)에 전달한다. 명령 레지스터(3025)는 수신된 명령을 임시적으로 기억하고, 그 명령을 명령이 수신되는 순서로 연속해서 DRAM 코어(3011)에 전송한다. 즉, 다음 명령은 최종 전달된 명령의 처리가 완료된 후에 전달된다.
도면에 도시한 바와 같이, 명령(Read-A2)은 Read 명령 레지스터(AR)로 입력되고, 명령(Read-B2)은 Read 명령 레지스터(BR)로 입력된다. 이것의 이전에, 리프레시가 1회 발생하고, 리프레시 명령은 리프레시 명령 레지스터에 입력된다. 명령 발송의 순서에 따라, 중재기(3026)는 이들 명령을 Read-A2->Ref->Read-B2의 순서로 DRAM 코어(3011)에 전달하고, 이어서 이들 명령은 코어에 의하여 실행된다.
코어 동작에 관하여 Read-B1과 Read-A2 사이에는 여분의 시간이 있고, 정상 동작과 루틴 동작은 이 점까지 수행된다. 리프레시가 발생할 때, Refresh는 시간의 공차가 전혀 없이 Read-A2 이후에 즉시 수행된다. 이후, Read-B2, Read-A3 등은 Read-A5의 실행시까지 시간의 공차가 전혀 없이 연속해서 수행된다.
리프레시 명령의 실행으로 인하여, 내부 동작은 명령이 장치의 외부로부터 입력하는 것에 관하여 약간의 지연을 나타낸다. 고속 동작으로 지연을 만회하고 명령(Read-A5)이 실행되는 시기까지 따라간다. Read-A5 및 Read-B5 사이에는 다시 여분의 시간이 있고, 이는 정상 동작 및 루틴 동작의 복귀를 나타낸다. 센스 버퍼(3016)를 통하여 DRAM 코어(3011)로부터 판독된 데이터는 전송 게이트를 통하여, 상응하는 Read 명령을 수신한 포트의 데이터 래치[데이터 래치(A1 또는 B1)]에전달된다. 데이터 래치(A1 또는 B1)는 데이터를 위한 시간 조절 기능을 제공하고, 그 데이터는 이어서 데이터 래치(A2 또는 B2)에 전송되며, 상응하는 포트의 클록 신호와 동기하여 출력된다.
리프레시 동작이 내부적으로 수행되는 경우에도, 외부적으로는 데이터가 미리 결정된 데이터 대기 시간 이후에 출력되는 것처럼 보인다. 따라서, 리프레시 동작을 전혀 고려하지 않아도 된다.
도 94는 전술한 조건과 동일한 조건 하에서Write 명령이 연속해서 입력되는 예를 도시하고 있다. Write 동작의 타이밍에 장치의 외부로부터 입력된 데이터는 버스트 입력의 형태로 주어진다. Write 명령은 최종 데이터 편이 입력되는 타이밍에Write 명령 레지스터(AW)에 기억된다. 이 경우에도, 리프레시 명령이 발생되어 내부적으로 실행되는 경우라도 리프레시 동작을 전혀 고려할 필요가 없다.
도 95 및 도 96은 A 포트와 B 포트 모두가 최대 클록 주파수로 Read 동작에 대하여 동작하는 경우에 수행되는 동작을 도시하고 있다. 도 97은 A 포트와 B 포트 모두가 최대 클록 주파수로Write 동작에 대하여 동작하는 경우에 수행되는 동작을 도시하고 있다. 이 경우, 양쪽 포트의 클록에는 위상차가 존재할 수 있다. 양쪽 포트에 대하여, Read 명령 주기=4, Write 명령 주기=4, 데이터 대기 시간=6 및 버스트 길이=4이다. 도면으로부터 알 수 있는 바와 같이, 동작은 이 경우에도 적절히 수행된다.
도 98 및 도 99는 양쪽 포트가 최고 주파수로 동작하고 리프레시 명령이 내부적으로 발생될 때Write 명령에서 Read 명령으로의 변경을 수행하는 경우에 수행되는 동작을 도시하는 타이밍도이다. 이것은 명령이 가장 붐비는 경우이다.
설명한 바와 같이, DRAM 코어(3011)는 공차가 전혀 없이 Ref->Write-A1->Write-B1->Read-A2->Read-B2의 순서로 동작한다. 이 예에서, Read-A2 및 Read-B2는 Write 명령의 입력 이후에 6 클록 주기로 입력된다. 이들 타이밍이 2회 클록만큼 앞서 있는 경우에도, DRAM 코어의 내부 동작을 앞설 수는 없다. 판독 데이터의 출력 타이밍은 Read 명령의 입력으로부터의 데이터 대기 시간에 의하여 제어된다. Read-A2 및 Read-B2의 입력 타이밍이 앞선다면, 따라서 데이터 출력 타이밍도 전방향으로 진행할 필요가 있다. 만일 Read-AB2가 Write-B1 이후에 4회의 클록 주기로 입력된다면, 예컨대, Read-B2에 응답하는 데이터 출력 타이밍은 DRAM 코어 동작의 개시에 너무 가까워지므로, Read-B2는 적절히 실행되지 못한다. 이 때문에, Write->Read 전이의 명령 기간은 이 예에서와 같은 6회의 클록 등의 비교적 길게 설정될 필요가 있다.
Read->Write의 명령 기간의 경우, Write 데이터는 Read 데이터의 출력이 완료되지 않으면 DQ 단자에 입력되지 못하므로, 불가피하게 명령 기간은 길어진다.
도 100a 및 도 100b는 DRAM 코어(3011)의 동작을 도시하는 도면이다. 도 100a는 Read 동작을 도시하고, 도 100b는 Write 동작을 도시한다. 도면에 도시한 바와 같이, 일련의 동작은 워드선 선택->데이터 증폭->재기록->프리챠지의 순서로 단일 명령에 응답하여 수행되고, 그 결과, 전체 동작을 완료한다. DRAM 코어(3011)는 명령의 수신시 명령 수신 준비 신호를 비활성화하고, 명령의 실행이 완료되거나 종료에 가까워질 때 명령 수신 준비 신호를 발생한다.
전술한 바와 같이, 본 발명에 의하여, 다중 포트 메모리는 메모리 어레이가 DRAM 코어를 기초로 하여 구성되는 경우에 리프레시 동작을 전혀 고려하지 않아도 이용될 수 있고, 그 결과, 대용량이며 이용이 용이한 다중 포트 메모리를 저비용으로 제공하게 된다.
[발명의 제4 형태]
다음에, 발명의 제4 형태에 관하여 설명한다.
복수 개의 포트가 설치된 반도체 메모리 장치인 다중 포트 메모리는 여러 가지 종류로 분류될 수 있다. 이하에서 사용하는 용어 "다중 포트 메모리"는 복수 개의 포트가 설치되고 여러 포트 중 어느 한 포트에서 공통 메모리 어레이로 액세스가 독립하여 행해질 수 있는 메모리를 일컫는다. 이러한 메모리는 A 포트와 B 포트를 가질 수 있고, 공통 메모리 어레이에 대하여 A 포트에 연결된 CPU로부터 그리고 B 포트에 연결된 CPU로부터 판독/기록 동작이 행해질 수 있게 한다.
다중 포트 메모리에는 중재기라고 하는 중재 회로가 설치된다. 중재기는 복수 개의 포트로부터 수신된 액세스 요구들의 우선 순위를 판단하고, 메모리 어레이의 제어 회로는 판단된 우선 순위에 따라 액세스 동작을 차례 차례로 행한다. 예컨대, 소정의 액세스 요구가 포트에 일찍 도달할수록 그 액세스에 부여되는 우선 순위는 높다.
이러한 경우에, 메모리 어레이는 복수 개의 포트로부터 무작위로 액세스되므로, 판독 엑세스 동작 또는 기록 액세스 동작이 수행되는 바로 이후에 메모리 어레이를 리셋할 필요가 있고, 그 결과, 다음 액세스에 대한 준비를 확실하게 한다.즉, 주어진 포트로부터의 액세스에 응답하여 워드선이 선택 상태를 유지하고, 열 어드레스가 연속해서 시프트되어 일반적으로 DRAM에서 이용되는 열 액세스 동작에서와 같이 연속적인 데이터를 판독하면, 다른 포트로부터의 액세스는 이 동작 동안에 대기 상태를 유지할 것이다. 따라서, 각 판독 동작 또는 기록 동작 바로 이후에 메모리 어레이를 리셋할 필요가 있다.
종래에, 다중 포트 메모리의 메모리 어레이로서는 SRAM이 통상 사용되어 왔다. 그 이유는, SRAM은 고속 랜덤 액세스가 가능하게 비파괴적인 판독 동작이 가능하기 때문이다.
두 개의 포트를 갖는 다중 포트 메모리에 있어서, 하나의 SRAM에는 두 세트의 워드선과 비트선 쌍이 제공된다. 두 개의 포트 중 하나는 한 세트의 워드선과 비트선 쌍을 이용하여 판독/기록 동작을 수행하고, 다른 포트는 다른 세트의 워드선과 비트선 쌍을 이용하여 판독/기록 동작을 수행한다. 이와 같이 하여, 판독/기록 동작은 두 개의 상이한 포트로부터 독립해서 수행될 수 있다. 그러나, 두 개의 포트가 동일한 셀 내의 데이터를 동시에 기록하고자 하는 경우에는 두 개의 기록 동작을 동시에 수행할 수 없기 때문에, 하나의 포트에는 기록 동작을 수행하도록 우선 순위가 부여되고, 다른 포트에는 BUSY 신호가 부여된다. 이를 BUSY 상태라고 부른다.
시스템의 성능 개선이 발전함에 따라, 시스템에 의하여 취급되는 데이터의 량도 증가한다. 그 결과, 다중 포트 메모리는 대용량이 필요하다. 그러나, SRAM형 다중 포트 메모리는 메모리 셀의 크기가 크다는 단점이 있다.
이를 해소하기 위하여, 다중 포트 메모리 내에 DRAM 어레이를 채택하여 신형의 다중 포트 메모리를 제조하는 것을 고려할 수 있다. 다중 포트 SRAM보다 상당히 높은 회로 밀도를 달성하기 위하여, 다중 포트 메모리에 이용되는 하나의 DRAM 메모리 셀은 통상의 DRAM 셀에서와 같이 하나의 워드선과 하나의 비트선에만 접속되어야 한다. 이와 같이 메모리 블록이 DRAM 셀을 이용하여 구성되면, 포트들 중 하나의 포트가 주어진 블록에 대하여 판독 동작 또는 기록 동작을 수행하는 경우에 포트들 중 다른 하나의 포트는 이 포트를 액세스할 수 없다. 그 이유는, DRAM 셀에서는 파괴적인 판독 동작만이 가능하기 때문이다. 즉, 정보가 판독되는 경우에, 동일한 블록 내의 다른 워드선은 이 정보가 증폭되고 셀 내에 재기억되고 워드선과 비트선이 프리챠지될 때까지 선택될 수 없다.
종래의 SRAM형의 다중 포트 메모리에 있어서, BUSY 상태는 복수 개의 포트가 동일한 메모리 셀에 대하여 동시의 기록 요구를 행하는 경우에만 생성될 것이다. 따라서, DRAM형의 다중 포트 메모리에는 종래의 SRAM형 다중 포트 메모리와 상이한 BUSY 상태 제어의 독특한 기능이 제공되어야 한다.
또한, SRAM형 다중 포트 메모리와 달리, DRAM형 다중 포트 메모리는 기억된 정보를 유지하기 위하여 리프레시 동작이 주기적으로 수행되어야 하므로, 적절한 리프레시 타이밍을 보증하도록 몇 가지 기준을 정해야 한다.
따라서, 본 발명은 DRAM과 특히 관련된 문제를 해소하는 DRAM형 다중 포트 메모리를 제공하는 데 목적이 있다.
본 발명에 의하면, 반도체 메모리 장치는, 각각이 명령을 수신하는 N 개의외부 포트, 각 외부 포트에 상응하는 N 개의 버스, N 개의 버스에 접속된 복수 개의 메모리 블록, N 개의 각 외부 포트에 입력된 명령이 액세스할 어드레스들을 비교하는 어드레스 비교 회로, 및 동일한 메모리 블록을 액세스하는 복수 개의 명령 중에 어느 명령(들)이 실행될지와 어드레스 비교를 기초로 하여 어드레스 비교 회로가 동일한 메모리 블록에 대한 액세스를 검출할 때 동일한 메모리 블록을 액세스하는 복수 개의 명령 중에 어느 명령(들)이 실행되지 않아야 할지를 판단하는 중재 회로를 포함하고 있다.
전술한 발명에 있어서, 장치의 외부로부터 포트에 입력된 명령들이 동일한 메모리 블록을 액세스하고자 하면, 중재 회로는 어느 명령이 실행되어야 하고 어느 명령이 실행되지 않아야 할지를 판단한다. 예컨대, 명령 타이밍들이 비교되어, 가장 빠른 명령이 실행되고 다른 명령(들)은 실행되지 않는다. 실행되지 않는 명령이 있는 경우에, BUSY 신호 등이 발생되어 장치의 외부에 출력된다. 이에 의하여, DRAM 코어 기반의 다중 포트 메모리 내에서 명령 액세스들이 서로 충돌이 있더라도 적절한 액세스 동작을 수행하고 적절한 BUSY 제어를 달성할 수 있게 된다.
본 발명의 한 형태에 의하면, 메모리 블록은 다이내믹형 메모리 셀을 기초로 하여 구성된 셀 어레이를 포함하고, 반도체 메모리 장치는 메모리 셀이 리프레시되는 타이밍을 정하는 리프레시 회로를 포함한다. 메모리 셀은 N 개의 외부 포트 중 적어도 하나에 입력되는 리프레시 명령에 응답하여 제1 모드로 리프레시되고, 메모리 셀은 리프레시 회로에 의하여 표시된 타이밍에 제2 모드로 리프레시된다.
전술한 발명에는 장치의 외부로부터의 지시에 응답하여 리프레시 동작을 수행하기 위한 동작 모드와 내부 리프레시 회로로부터의 지시에 응답하여 리프레시 동작을 수행하기 위한 동작 모드가 제공된다. 이에 의하여, 일정한 기간에 리프레시 명령을 수신하도록 미리 결정된 외부 포트가 리프레시 관리용 포트로서 할당되는 방식으로 다중 포트 메모리를 이용하거나, 모든 외부 포트가 비활성 상태에 있을 때 내부 리프레시 회로가 리프레시 동작을 개시하는 방식으로 다중 포트 메모리를 이용하게 할 수 있다. 따라서, 본 발명은 시스템의 요구 조건에 맞는 유연한 리프레시 관리의 기초를 제공ㅎ나다.
다음에, 첨부 도면을 참조하여 본 발명의 실시예(제5 형태)를 설명한다.
도 101은 본 발명에 따른 다중 포트 메모리의 실시예를 도시하는 블록도이다. 이 예에서는 두 개의 포트, 즉 A 포트와 B 포트가 설치되도록 구성된다.
도 101의 다중 포트 메모리(4010)는, A 포트(4011), B 포트(4012), 자기 리프레시 회로(4013), 메모리 블록(4014-1 내지 4014-n), 중재기(4015), 리프레시 어드레스 카운터(4016), 어드레스 변경 회로(4017), 어드레스 변경 회로(4018), 어드레스 비교기(4019), 버스 A(4020-1) 및 버스 B(4020-2)를 포함하고 있다.
A 포트(4011)는 모드 레지스터(4031),(CLK 버퍼(4032), 데이터 I/O 회로(4033), 명령 복호기 레지스터(4034), 어드레스 버퍼/레지스터(4035) 및 BUSY 신호 I/O부(4036)를 포함하고 있다. 또한, B 포트(4012)는 모드 레지스터(4041),(CLK 버퍼(4042), 데이터 I/O 회로(4043), 명령 복호기 레지스터(4044), 어드레스 버퍼/레지스터(4045) 및 BUSY 신호 I/O부(4046)를 포함하고 있다. A 포트(11)와 B 포트(12)에서, 외부 버스로(부터)의 액세스는 개개의클록 신호(CLKA 및 CLKB)와 동기하여 독립적으로 달성된다. 모드 레지스터(4031 및 4041)는 개개의 포트에 대하여 데이터 대기 시간과 버스트 길이 등의 모드 설정을 내부에 기억할 수 있다. 이 실시예에서, A 포트(4011)와 B 포트(4012) 모두에는 개개의 모드 레지스터가 설치되므로, 각 포트는 모드 설정을 행할 수 있다. 그러나, 모드 레지스터는 예컨대 하나의 포트에 대한 설정을 행함으로써 양쪽 포트에 대한 설정을 행할 수 있도록 이 하나의 포트에만 배치되어도 된다.
자기 리프레시 회로(4013)는 리프레시 타이머(4046)와 리프레시 명령 발생기(4047)를 포함하고 있다. 자기 리프레시 회로(4013)는 장치의 내측에서 리프레시 명령을 발생하고, A 포트(4011)와 B 포트(4012)로부터 각각 신호(CKEA1 및 CKEB1)를 발생한다. 신호(CKEA1 및 CKEB1)는(CLK 버퍼(4032 및 4042)에 의하여 외부 신호(CKEA 및 CKEB)를 버퍼링함으로써 얻는다. 외부 신호(CKEA 및 CKEB)는 개개의 포트의 클록 버퍼를 정지시키고 개개의 포트를 비활성화시키는 데 이용된다. A 포트(4011)와 B 포트(4012) 모두가 비활성 상태로 되면, 자기 리프레시 회로(13)는 동작을 개시한다.
메모리 블록(4014-1 내지 4014-n)은 각각 내부 버스 A(4020-1)와 내부 버스 B(4020-2)에 접속된다. 외부 포트는 복수 개(즉, A 포트와 B 포트)가 있고, 여기에서, A 포트(4011)는 버스 A(4020-1)를 통하여 각 메모리 블록(4014-1 내지 4014-n)과 인터페이스하고, B 포트(4012)는 버스 A(4020-2)를 통하여 각 메모리 블록(4014-1 내지 4014-n)과 인터페이스한다.
A 포트(4011)로부터의 액세스와 B 포트(4012)로부터의 액세스가 동시에 입력되면, 액세스된 메모리 블록은 이들 액세스가 다른 메모리 블록을 향할 때 이들 액세스 요구에 상응하는 동작을 독립적으로 수행한다.
A 포트(4011)로부터의 액세스와 B 포트(4012)로부터의 액세스가 동일한 메모리 블록을 향하면, 중재기(중재 회로)(4015)는 명령 도달 순서를 판단하여, 첫 번째 도달 명령을 실행하고 두 번째 도달 명령을 취소한다. 명령이 취소되는 경우에, 중재기(4015)는 BUSY 신호를 발생하여, 두 번째 도달 명령에 의하여 요구된 액세스가 취소되었음을 외부 제어기에 통보한다.
어드레스 비교기(4019)는 두 개의 포트에 입력된 액세스 요구가 동일한 메모리 블록으로 향하는 지를 판단한다. 상세하게는, 어드레스 비교기(4019)는 두 개의 포트에 입력된 어드레스들에 포함되어 있는 블록 선택 어드레스들을 비교한다. 그들 어드레스가 동일하면, 일치 신호가 중재기(4015)에 공급된다.
A 포트(4011) 또는 B 포트(4012)가 활성 상태인 경우에, 리프레시 명령이 A 포트(4011) 또는 B 포트(4012)로부터 입력된다.
두 개의 포트 중 다른 포트에 입력되는 판독 명령 또는 기록 명령이 행하는 것과 같이 동일한 메모리 블록을 두 개의 포트 중 하나의 포트에 입력된 리프레시 명령이 액세스하면 중재기(4015)는 명령 도달 순서를 판단한다. 리프레시 명령이 다른 명령보다 늦으면, 리프레시 명령은 취소된다. 이 경우, 중재기(4015)는 BUSY 신호를 발생하고, 그 신호를 장치의 외부에 공급한다. BUSY 신호의 검출시, 외부 제어기는 BUSY 신호가 소멸된 이후에 다시 리프레시 명령을 다중 포트 메모리(4010)에 제공한다.
리프레시 명령이 다른 명령보다 빠르거나 자기 리프레시 명령이 자기 리프레시 회로(4013)에 공급되면, 중재기(4015)는 카운트업 신호를 발생하고, 그 신호를 리프레시 어드레스 카운터(4016)에 공급한다.
리프레시 어드레스 카운터(4016)는 카운트업 신호에 응답하여 어드레스를 상향 계수(카운트업)하고, 그 결과, 리프레시 어드레스를 발생한다. 카운트업 신호가 중재기(4015)로부터 공급될 필요가 있는 이유는, 전술한 바와 같이 리프레시 명령이 취소될 수 있으므로 카운트업 동작은 중재기(4015)로부터 실제로 발송된 리프레시 명령에만 응답하여야 하기 때문이다. 여기에서, 카운트업 동작은 리프레시 동작이 수행된 이후에 수행된다.
A 포트(4011)에 입력된 명령이 Read 명령(독출 명령) 또는 Write 명령(기록 명령)이면 어드레스 변경 회로(4017)는 A 포트(4011)에 외부 입력된 어드레스를 버스 A(4020-1)에 전송한다. A 포트(4011)에 입력된 명령이 리프레시 명령이면, 리프레시 어드레스 카운터(4016)에 의하여 발생되는 어드레스는 버스 A(4020-1)에 전달된다.
B 포트(4012)에 입력된 명령이 Read 명령(독출 명령) 또는 Write 명령(기록 명령)이면 어드레스 변경 회로(4018)는 B 포트(4012)에 외부 입력된 어드레스를 버스 B(4020-2)에 전송한다. 반면에, B 포트(4012)에 입력된 명령이 리프레시 명령이면, 리프레시 어드레스 카운터(4016)에 의하여 발생되는 어드레스는 버스 B(4020-2)에 전달된다.
전술한 바와 같이, A 포트(4011)와 B 포트(4012) 모두가 비활성 상태에 있으면, 자기 리프레시 회로(4013)는 내부 회로로서 제공된 리프레시 타이머(46)의 타이밍 신호를 기초로 하여 리프레시 명령을 발생한다. 이 실시예에서, 자기 리프레시 명령과 자기 리프레시 어드레스는 버스 A(4020-1)를 통하여 메모리 블록(4014-1 내지 4014-n)에 전달된다. 자기 리프레시는 A 포트(4011)와 B 포트(4012)의 명령들과 충돌하지 않으므로, 중재기(4015)가 우선 순위를 판단할 필요가 없다. 그러나, 카운트업 신호는 중재기(4015)에 의하여 발생되어야 하므로, 자기 리프레시 명령은 중재기(4015)에 공급된다.
도 102는 본 발명에 따른 다중 포트 메모리(4010)의 동작의 예를 도시하는 도면이다.
명령(Read-x)은 메모리 블록[4014-(x+1)]으로 향한다. Read-0은 먼저 A 포트(4011)에 입력되고, 이어서 Read-3은 B 포트(4012)에 입력된다. 이 경우, 액세스될 메모리 블록은 상이하므로, 메모리 블록(4014-1)과 메모리 블록(4014-4)은 병렬로 동작한다.
이후, Read-1은 A 포트(4011)에 입력되고, 이어서 Read-1은 B 포트(4012)에 입력된다. 이 경우에는 액세스될 메모리 블록들이 동일하므로, 일치 신호가 발생되어, B 포트(4012)에 입력되는 명령을 취소한다. 또한, BUSY-B[부(負)논리]는 B 포트(4012)의 BUSY 신호 I/O부(4046)로부터 출력된다.
B 포트(4012)의 외부 제어기는 BUSY-B를 검출하고, Read-1이 소멸된 이후에 Read-1을 다시 다중 포트 메모리(4010)에 공급한다.
도 103은 본 발명에 따른 다중 포트 메모리(4010)의 동작의 다른 예를 도시하는 타이밍도이다.
도 103에 도시한 동작은, 두 번째 명령(Read-1)이 A 포트(4011)와 B 포트(4012)에 입력되어 BUSY-B를 발생할 때까지는 도 102의 동작과 동일하다. 이 예에서 B 포트(4012)에 입력된 Read-1에 응답하여 BUSY-B가 발생한 이후에, 판독 명령(Read-2)은 BUSY-B가 종료되기 이전에 다른 메모리 블록을 액세스하도록 입력된다. 이와 같이 하여, 다음 명령이 다른 블록으로 향하는 한 BUSY가 확인되는 기간 중에도 상기 다음 명령이 입력될 수 있다.
도 104는 본 발명에 따른 다중 포트 메모리(4010)의 동작의 또 다른 예를 도시하는 타이밍도이다.
도 104의 예는 Write 명령이 입력되는 경우를 도시하고 있다. Read 명령이 A 포트(4011)에 입력되고, 이어서Write 명령이 B 포트(4012)에 입력된다.
이 실시예에서, 입출력 데이터는 버스트형이다. 즉, 데이터 입력은 복수 개의 열 어드레스로부터의 병렬 데이터를 판독함으로써 그리고 그 병렬 데이터를 데이터 출력시에 데이터 I/O 회로(4033 및 4043)에서 직렬 데이터로 변환함으로써 얻는다. 데이터 입력은 직렬로 입력되고, 이어서 데이터 I/O 회로(4033 및 4043)에서 병렬 데이터로 변환되며, 이어서 병렬 데이터를 해당 메모리 블록의 복수 개의 열 어드레스에 기록한다. 이러한 종류의 버스트 동작을 이용하면 데이터 전송 속력이 향상될 수 있다. 이 예에서, 버스트 길이는 4이므로, 네 개의 데이터 아이템은 연속해서 입출력된다.
Write 동작의 경우에, Write 동작은 네 개의 모든 데이터 아이템이 입력되지않으면 개시되지 않는다. 따라서, 중재기(4015)가 Write 동작에 대한 우선 순위를 판단할 수 있는 타이밍은 일련의 직렬 데이터 입력의 최종 아이템이 제공되는 타이밍이다.
도 104에서, A 포트(4011)의 세번째 명령 입력(Read-3)과 B 포트(4012)의 두 번째 명령 입력은 동일한 메모리 블록을 액세스하고자 시도한다. B 포트(4012)의Write-3은 명령이 포트에 입력하는 입력 타이밍에 있어서 다른 것에 앞서 있지만, A 포트(4011)의 Read-3은 기록 데이터의 최종 아이템이 입력되기 이전에 제공된다. 따라서, A 포트(4011)의 명령은 다른 것들에 앞서 있고, B 포트(4012)의 명령을 취소한다.
도 101에 도시한 바와 같이, A 포트(4011)와 B 포트(4012)에는 각각(CLK 버퍼(4032 및 4042)가 설치되고, 장치의 외부로부터 상이한 클록 신호들을 수신한다. 그들 클록 신호는 동일할 수도 있고 상이할 수도 있는 위상과 주파수를 갖는다.
도 105는 명령 복호기 레지스터(4034 및 4044)의 블록도이다.
명령 복호기 레지스터(4034)는 입력 버퍼(4061), 명령 복호기(4062) 및 (n-1)-클록-지연 회로(4063)를 포함하고 있다. 명령 복호기 레지스터(4044)는 입력 버퍼(4071), 명령 복호기(4072) 및 (n-1)-클록-지연 회로(4073)를 포함하고 있다.
입력 버퍼(4061 또는 4071)에 입력된 명령이 Read 명령(RA1, RB1) 또는 리프레시 명령(REFA, REFB)이면, 입력 명령은 타이밍 조작이 전혀 없이 명령 복호기(4062 또는 4072)를 통하여 중재기(4015)에 전달되다. Write 명령(WA1, WB1)의 경우에, 입력 명령은 (n-1)-클록-지연 회로(4063 또는 4073)에 의하여 (n-1)회의 클록 주기 지연되고, 일련의 버스트 기록 입력에 있어서의 최종 및 n번째 데이터 아이템이 제공되는 타이밍에 중재기(4015)에 전달된다.
도 106은 본 발명의 실시예에 따른 중재기(4015)의 블록도이다.
중재기(4015)는 레지스터(4081), 지연 회로(4082), 전송 게이트(4083), 레지스터(4084), 레지스터(4085), 지연 회로(4086), 전송 게이트(4087), 레지스터(4088), NOR 회로(4091 및 4092), NAND 회로(4093 내지 4096), 인버터(97 내지 101) 및 NOR 회로(102 및 103)을 포함하고 있다.
명령 복호기 레지스터(4034 또는 4044)로부터 전달된 명령은 각각 레지스터(4081 또는 4085)에 기억된다. A 포트(4011)에 명령 입력이 제공될 때, 인버터(4097)의 출력인 노드(N1)에서 HIGH 신호가 발생된다. B 포트(4012)에 명령 입력이 제공될 때, 인버터(1007)의 출력인 노드(N2)에서 HIGH 신호가 발생된다. N1의 신호 또는 N2의 신호 중 보다 빠른 것이 노드(N3 또는 N4)에 래치된다.
블록 선택 어드레스들이 A 포트(4011)와 B 포트(4012) 사이에 일치하지 않으면, 어드레스 비교기(4019)는 LOW인 일치 신호를 발생한다. 따라서, 이 경우에, N5 및 N6은 HIGH로 설정된다. 이 HIGH 신호에 응답하여, 전송 게이트 A(4083)와 전송 게이트 B(4087) 모두는 개방되므로, 레지스터(4081 및 4085)의 명령은 예외 없이 레지스터(4084 및 4088)에 전달된다.
블록 선택 어드레스들이 A 포트(4011)와 B 포트(4012) 사이에 일치하면, 어드레스 비교기(4019)는 HIGH인 일치 신호를 발생한다. 따라서, 이 경우에, N5 및 N6의 신호 레벨은 노드(N3 및 N4)의 신호 레벨에 의하여 제어될 것이다. A포트(4011)가 보다 빠르면, N5는 HIGH로 설정되고, N6은 LOW로 설정된다. N5의 HIGH 상태에 응답하여, 전송 게이트 A(4083)가 개방되므로, A 포트(4011)의 명령은 레지스터(4084)에 전달된다. 또한, N6의 LOW 상태는 전송 게이트 B(4087)를 폐쇄시키므로, B 포트(4012)의 명령은 레지스터(4088)에 전달된다.
또한, N5 및 N6의 신호 레벨을 기초로 하여, 개개의 레지스터(4081 및 4085)를 리셋시키는 리셋 신호(BUSY1-A 및 BUSY1-B)가 발생된다. A 포트(4011)의 명령이 선택되면, 예컨대 BUSY1-B가 발생되고 레지스터(4085)는 리셋된다.
자기 리프레시 명령을 위한 우선 순위를 판단할 필요가 없고, 자기 리프레시 명령은 레지스터(4084)의 출력단에서 A 포트(4011)의 리프레시 명령(REFA)과 조합된다. A 포트(4011)에 대하여 이와 같이 생성된 리프레시 명령 신호(REFA2)는 카운트업 신호를 발생하도록 B 포트(4012)의 리프레시 명령 신호(REFB2)와 조합된다. 리프레시 명령의 발생에 응답하여, 카운트업 신호는 중재기(4015)로부터 리프레시 어드레스 카운터(4016)에 공급된다.
도 107은 중재기(4015)의 동작을 도시하는 타이밍도이다.
도 107은, 블록 선택 어드레스들이 A 포트(4011)와 B 포트(4012) 사이에 일치하고, A 포트(4011)의 Read 명령(RA1)이 B 포트(4012)의 Read 명령(RB1)보다 빠른 경우를 도시하고 있다. 전술한 바와 동일하게, 노드(N5 및 N6)의 신호 레벨은 노드(N1 및 N2)의 신호 레벨을 반영하는 노드(N3 및 N4)의 신호 레벨에 의하여 제어되고, 따라서 Read 명령(RA2)은 중재기(4015)로부터 전달된다. B 포트(4012)의 Read 명령은 출력되지 않고 취소되며, BUSY1-B 신호가 발생된다.
도 108은 어드레스 버퍼/레지스터 및 어드레스 변경 회로의 블록도이다.
도 108에서, 신호명(예컨대,(RA)1)의 말미에 "P"자가 붙은 신호명(예컨대,(RA)1P)을 갖는 신호는 P자 없는 신호명(예컨대,(RA)1)을 갖는 신호의 상승 에지 타이밍에서 펄스를 생성함으로써 발생된다.
A 포트(4011)의 어드레스 버퍼/레지스터(4035)는 입력 버퍼(4035-1), 전송 게이트(4035-2) 및 OR 회로(4035-3)를 포함하고 있다. 도 105에 도시한 명령 복호기(4062)로부터 출력된 판독 명령 신호(RA1)에 대하여, 상승 에지는 펄스로 변환되어, 펄스 신호(RA1P)를 발생하고, 이어서 이 펄스 신호는 OR 회로(4035-3)의 한쪽 입력부에 공급된다. 도 105에 도시한 명령 복호기(4062)로부터 출력된 기록 명령 신호(WA1)에 대하여, 상승 에지는 펄스로 변환되어, 펄스 신호(WA1P)를 발생하고, 이어서 이 펄스 신호는 OR 회로(4035-3)의 다른쪽 입력부에 공급된다. OR 회로(4035-3)의 출력은 데이터 전송을 지시하는 전송 방향 신호로서 전송 게이트(4035-3)에 공급된다.
B 포트(4012)의 어드레스 버퍼/레지스터(4045)는 입력 버퍼(4045-1), 전송 게이트(4045-2) 및 OR 회로(4045-3)를 포함하고 있다. B 포트(4012)의 어드레스 버퍼/레지스터(4045)의 구성은 A 포트(4011)의 어드레스 버퍼/레지스터(4035)의 구성과 동일하다.
어드레스 변경 회로(4017)는 어드레스 래치(4017-1), 전송 게이트(4017-2 및 4017-3), 어드레스 래치(4017-4), 및 OR 회로(4017-5 및 4017-6)를 포함하고 있다. OR 회로(4017-5)는 신호(RA1P 및 WAD1P)를 수신하고, 그의 출력은 전송 지시 신호로서 전송 게이트(4017-2)에 공급한다. OR 회로(4017-6)는 신호(REFAP 및 SR-AP)를 수신하고, 그의 출력은 전송 지시 신호로서 전송 게이트(4017-3)에 공급한다.
어드레스 변경 회로(4018)는 어드레스 래치(4018-1), 전송 게이트(4018-2 및 4018-3), 어드레스 래치(4018-4), 및 OR 회로(4018-5)를 포함하고 있다. OR 회로(4018-5)는 신호(RB1P 및 WBD1P)를 수신하고, 그의 출력은 전송 지시 신호로서 전송 게이트(4018-2)에 공급한다. 또한, 신호(REFBP)는 전송 지시 신호로서 전송 게이트(4018-2)에 공급된다.
Read 명령 또는 Write 명령이 장치의 외부로부터 입력되는 경우에, 그 명령과 함께 입력되는 어드레스는 어드레스 변경 회로(4017 또는 4018)에 전달된다. Read 명령의 경우에, 명령은 타이밍 조작이 전혀 없이 어드레스 래치(4017-4 또는 4018-4)에 전달된다. Write 명령의 경우에, 명령은 일련의 기록 데이터 입력의 최종 아이템이 획득되는 타이밍에 어드레스 래치(4017-4 또는 4018-4)에 전달된다.
리프레시 명령의 경우에, 리프레시 어드레스 카운터(4016)에 의하여 발생된 리프레시 어드레스는 신호(REFA, REFB 또는 SR-A)의 타이밍에 어드레스 래치(4017-4 또는 4018-4)에 전달된다.
도 109는 메모리 블록의 블록도이다.
도 109는 메모리 블록(4014-1 내지 4014-n)의 일 예로서 메모리 블록(4014-1)을 도시하고 있다. 메모리 블록들(4014-1 내지 4014-n)은 동일한 구성이다.
메모리 블록(4014-1)은 메모리 어레이(4111), 제어 회로(4112), 버스 선택기(4113), 센스 증폭기 버퍼(4115) 및 기록 증폭기(4116)를 포함하고 있다. 메모리 어레이(4111)는 DRAM 메모리 셀, 셀 게이트 트랜지스터, 워드선, 비트선, 센스 증폭기, 열 선, 열 게이트 등을 포함하고 있고, 판독 동작과 기록 동작을 위한 데이터를 기억한다. 제어 회로(4112)는 메모리 블록(4014-1)의 동작을 제어한다. 기록 증폭기(4116)는 메모리 어레이(4111)에 기록될 데이터를 증폭한다. 센스 버퍼(4115)는 메모리 어레이(4111)로부터 판독된 데이터를 증폭한다.
제어 회로(4112)는 버스 A(4020-1) 및 버스 B(4020-2)에 접속되고, 그 자신의 블록에 상응하는 해당 블록 선택 어드레스에 응답하여 선택된다. 선택되면, 제어 회로(4112)는 해당 블록 선택 어드레스를 발송한 버스들 중 하나의 버스로부터 명령을 획득한다. 버스 A(4020-1)의 명령이 획득되면, 버스 선택기(4113)는 버스 A(4020-1)의 어드레스 신호를 메모리 어레이(4111)에 송신하도록 제어된다. 또한, 버스 선택기(4114)는 센스 버퍼(4115) 또는 기록 증폭기(4116)를 버스 A(4020-1)의 데이터선에 접속하도록 제어된다. 버스 B(4020-2)의 명령이 획득되면, 버스 선택기(4113)는 버스 B(4020-2)의 어드레스 신호를 메모리 어레이(4111)에 송신하도록 제어된다. 또한, 버스 선택기(4114)는 센스 버퍼(4115) 또는 기록 증폭기(4116)를 버스 B(4020-2)의 데이터선에 접속하도록 제어된다. 제어 회로(4112)에 의하여 획득된 명령이 리프레시 명령이면, 버스 선택기(114)는 동작될 필요가 없다.
버스들 중 하나의 버스는 전술한 바와 같이 선택되고, 이어서, 워드선 선택, 셀 데이터 증폭, Read, Write 및 Refresh 중 어느 하나 및 프리챠지 동작은 일련의 연속 동작으로서 계속해서 수행된다.
도 110a 및 도 110b는 메모리 블록의 동작을 도시하는 타이밍도이다.
도 110a는 판독 동작의 경우를 도시하고, 도 110b는 기록 동작의 경우를 도시한다. 도 110a 및 도 110b에 도시한 동작 타이밍에서, 워드선 선택, 데이터 증폭, 판독 동작 또는 기록 동작 중 어느 하나, 재기록(데이터 재기억) 동작 및 프리챠지 동작은 단일의 명령에 응답하여 계속해서 수행되고, 그 결과, 요구된 동작을 완료한다.
본 발명(제4 형태)에 있어서, 장치의 외부로부터 포트로 입력된 명령이 동일의 메모리 블록을 액세스하려고 시도한다면, 중재 회로는 여러 명령들 중 어느 명령이 실행되어야 할지와 여러 명령들 중 어느 명령이 실행되지 않아야 할지를 판단한다. 예컨대, 명령 타이밍들이 비교되어, 가장 빠른 명령이 실행되고 다른 명령(들)은 실행되지 않는다. 실행되지 않는 명령이 있는 경우에, BUSY 신호 등이 발생되어 장치의 외부에 출력된다. 이에 의하여, 명령 액세스들이 DRAM 코어 기반의 다중 포트 메모리에서 서로 충돌하는 경우에도 적절한 액세스 동작을 수행하고 적절한 BUSY 제어를 달성할 수 있게 된다.
또한, 본 발명에는 장치의 외부로부터의 지시에 응답하여 리프레시 동작을 수행하기 위한 동작 모드와 내부 리프레시 회로로부터의 지시에 응답하여 리프레시 동작을 수행하기 위한 동작 모드가 제공된다. 이에 의하여, 일정한 기간에 리프레시 명령을 수신하도록 미리 결정된 외부 포트를 리프레시 관리용 포트로서 할당하는 방식으로 다중 포트 메모리를 이용하거나, 모든 외부 포트가 비활성 상태에 있을 때 내부 리프레시 회로가 리프레시 동작을 개시하는 방식으로 다중 포트 메모리를 이용할 수 있게 된다. 따라서, 본 발명은 시스템의 요구 조건에 맞는 유연한 리프레시 관리의 기초를 제공한다.
[본 발명의 제5 형태]
다음에, 본 발명의 제5 형태에 관하여 설명한다.
다중 포트 메모리들은 두 개 또는 그 이상의 입출력 단자 세트를 가지며(즉, 복수 개의 입출력 포트), 수신된 신호들에 응답하여 메모리 동작을 수행한다. 통상의 메모리들과 달리, 판독 동작 및 기록 동작이 동시에 실행될 수 있다. 예컨대, 시스템 내에 복수 개의 버스가 존재하고, 복수 개의 제어기(CPU 등)가 상기 개개의 버스들을 이용할 필요가 있는 경우, 시스템은 다중 포트 메모리의 입출력 포트들을 개개의 버스에 접속하게 실시될 수 있다. 이에 의하여, 특별히 설계된 제어 논리 회로(FIFO 논리 회로 등)를 사용할 필요가 없어지게 된다.
또한, 다중 포트 메모리는 영상 메모리(일반적으로, 이중 포트 리포트 메모리)로 사용하기 위하여 개발된다. 영상 메모리는, 그 포트들을 통하여 임의의 메모리 셀로의 액세스가 가능하도록 하는 랜덤 액세스 포트들, 및 영상표시 장치와 데이터를 교환하는 직렬 액세스 포트를 가진다.
이러한 종류의 다중 포트 메모리는 메모리 셀 영역에 SRAM 메모리 코어나 또는 DRAM 메모리 코어를 채용한다.
그러나, 다중 포트 메모리는 아직까지는 각각의 입출력 포트에서 서로 다른 클록 신호들을 수신하며, 위의 클록 신호들과 동기하여 메모리 셀 영역의 하나로 액세스하도록 개발되어야만 한다. 즉, 회로의 세부적 구현 및 이러한 종류의 클록-동기된 다중 포트 메모리를 어떻게 제어하여야 하는지가 아직 알려지지 않고 있다.
더욱이, 통상의 다중 포트 메모리(특히, 이중 포트 메모리)에서는, 입출력 포트들의 각각의 세트를 위한 비트선 및 센스 증폭기가 개별적으로 제공된다. 따라서, 메모리 코어의 레이아웃 크기가 커지는 문제가 있으며, 그에 의하여 바람직하지 못하게도 다중 포트 메모리의 칩 크기가 커지는 문제가 있다.
따라서, 본 발명은 랜덤 액세스가 이루어질 수 있도록 하는 클록-동기된 다중 포트 메모리를 제공하는 것을 목적으로 한다.
본 발명은 입출력 포트들의 각각의 세트에서 서로 다른 클록 신호들을 수신하여 신뢰성 있게 동작하는 다중 포트 메모리를 제공하는 것을 다른 목적으로 한다.
본 발명은 또한, 다른 입출력 포트들의 상태에 관계없이 언제나 명령 신호를 수신하여 메모리 코어를 구동할 수 있는 다중 포트 메모리를 제공하는 것을 또 다른 목적으로 한다.
본 발명은 칩 크기가 축소된 소형의 다중 포트 메모리를 제공하는 것을 또 다른 목적으로 한다.
본 발명의 제5 형태에 의하면, 복수 개의 메모리 코어의 일부는 복수 개의 입출력 포트들로 공급되는 클록 신호와 어드레스 신호를 기초로 동작한다. 각각의 입출력 포트들은, 클록 신호를 수신하는 클록 단자, 위의 클록 신호와 동기되어 제공되는 어드레스 신호들을 수신하는 어드레스 단자들, 및 데이터 신호들의 입출력을 위한 데이터 입출력 단자들을 포함한다. 제어 회로들이 각각의 메모리 코어들을위해 제공된다.
동일한 메모리 코어를 나타내는 어드레스 신호들이 둘 또는 그 이상의 입출력 포트들로 제공되는 경우, 제어 회로는 메모리 코어가 첫 번째로 수신된 어드레스 신호들에 응답하여 동작하도록 한다. 즉, 메모리 동작은 어드레스 신호를 첫 번째로 수신하는 입출력 포트에 대하여 수행된다. 메모리 코어들은 각각의 센스 증폭기 영역들에 상응하도록 형성되는데, 여기에서 센스 증폭기 영역이란 센스 증폭기들이 함께 동작하는 일정한 영역을 말한다. 메모리 코어는 어드레스 신호들의 상위 부분에 의하여 선택된다. 메모리 코어의 메모리 셀들은 어드레스 신호들의 하위 부분에 의하여 선택된다. 어드레스 신호들의 하위 부분에 의하여 선택되는 메모리 셀들의 데이터 신호들은, 첫 번째로 도달된 어드레스 신호들의 상위 부분에 상응하는 입출력 포트를 통하여, 장치의 외부에서 입력되거나 또는 외부로 출력된다.
위의 제어 회로는 단지 어드레스 신호들을 비교하는 것만이 필요하기 때문에, 단순한 회로로써 구현될 수 있다. 이는 칩 크기의 감소에 기여하게 된다.
각각의 입출력 포트가 클록 단자를 가지고 있기 때문에, 클록 신호의 주파수는 각각의 입출력 포트에 대하여 개별적으로 제어될 수 있다. 즉, 다른 동작 주파수들을 가진 복수 개의 제어기들이 다중 포트 메모리에 접속될 수 있다.
본 발명의 다중 포트 메모리에서, 어드레스 신호를 포착하기 위해 사용되는 클록 신호의 특정한 에지에 대하여 소정의 설정 시간 이전에, 어드레스 신호들이 정하여 진다. 위의 제어 회로는 이러한 클록 신호의 특정한 에지 이전에 결정되는 어드레스 신호들을 사용하여 어드레스 신호들의 도달 순서를 결정한다. 따라서, 어드레스 신호 도달의 순서는 첫 번째로 수신된 클록 신호의 에지를 이용하여 결정될 수 있다. 그에 따라, 메모리 코어의 동작 개시 이전에, 우선 순위를 가지는 입출력 포트를 식별할 수 있으며, 그에 의하여 고속 메모리 동작이 가능하다. 어드레스 신호들이 미리 결정된 타이밍(즉, 클록 신호의 에지)에서 비교되기 때문에, 메모리 동작과 관계없는 어드레스 신호들의 잘못된 비교를 방지할 수 있다.
본 발명에 의하면, 다수 메모리 코어들의 일부는 복수 개의 입출력 포트들로 제공되는 클록 신호들과 어드레스 신호들을 기초로 동작한다. 각각의 입출력 포트들은 클록 신호를 수신하는 클록 단자, 위의 클록 신호와 동기되어 공급되는 어드레스 신호들을 수신하는 어드레스 단자들, 및 데이터 신호들의 입출력을 위한 데이터 입출력 단자들을 가진다. 제어 회로들이 각각의 메모리 코어들을 위해 제공된다.
동일한 메모리 코어를 나타내는 어드레스 신호들이 둘 또는 그 이상의 입출력 포트들로 제공되는 경우, 제어 회로는 메모리 코어가 첫 번째로 수신된 어드레스 신호들에 응답하여 동작하도록 한다. 이후에, 위의 제어 회로는 위의 어드레스 신호들이 수신된 순서에 따라서, 어드레스 신호들에 응답하여 메모리 코어가 동작하도록 한다. 위의 어드레스 신호들의 상위 부분에 의하여 메모리 코어가 선택된다. 메모리 코어의 메모리 셀들은 위의 어드레스 신호들의 하위 부분에 의하여 선택된다. 어드레스 신호의 하위 부분에 의하여 선택된 메모리 셀들의 데이터 신호들은, 각각의 어드레스 신호들에 상응하는 입출력 포트들을 통하여, 순차적으로 장치의 외부로부터 입력되거나 외부로 출력된다. 따라서, 메모리의 동작 요구을 수신하는 모든 입출력 포트들에 대하여 메모리의 동작이 예외 없이 수행된다.
즉, 다중 포트 메모리는 항상 준비 상태에 있게 된다. 위의 다중 포트 메모리에 접속된 제어기는 다중 포트 메모리가 BUSY 상태에 있는지를 센스해야할 필요가 없게 된다. 이는 하드웨어 및 소프트웨어의 형태에서 제어기의 동작을 단순화시킨다. 제어 회로는 단지 어드레스 신호들을 비교하는 것만이 필요하기 때문에 단순한 회로로 구현할 수 있다. 이는 칩 크기의 감소에 기여하게 된다.
각각의 입출력 포트는 클록 단자를 가지기 때문에, 클록 신호의 주파수가 각각의 입출력 포트에 대하여 개별적으로 제어될 수 있다. 즉, 다른 동작 주파수를 가진 복수 개의 제어기들이 상기 다중 포트 메모리에 접속될 수 있다.
본 발명의 다중 포트 메모리에서는, 메모리 코어 동작들을 제어하는 클록 신호와 동기된 명령 신호를 수신하는 명령 단자가 각각의 입출력 포트에 제공된다. 각각의 입출력 포트에서는, 판독 동작 및 기록 동작에 필요한 메모리 코어의 동작 주기보다 적어도 두 배의 시간 간격을 가지고, 메모리 코어들을 활성화시키기 위한 명령 신호들이 제공된다. 다중 포트 메모리에 두 개의 입출력 포트들 또는 네 개의 입출력 포트들이 제공된다면, 명령 신호들의 시간 간격은 각각 동작 주기의 두 배 또는 동작 주기의 네 배로 정하여 질 수 있다. 이러한 설정에서, 다중 포트 메모리는 외부 제어기에 대하여 준비 상태에 있게 된다.
명령 신호가 미리 결정된 시간 간격보다 짧은 간격으로 공급된다면, 오동작을 방지하기 위해서 이러한 명령 신호들은 무효로 처리한다. 명령 신호들이 서로 다른 입출력 포트들로 공급된다면, 미리 결정된 시간 간격들 보다 짧지 않은 시간간격이더라도 이러한 명령 신호들은 받아들여진다.
또한, 본 발명에 의하면, 메모리 셀들로부터 판독한 또는 메모리 셀들에 기록한 데이터는 입출력 단자들과 메모리 셀들의 사이에서 버퍼를 통하여 전달된다. 여기에서 버퍼는, 둘 또는 그 이상의 메모리 셀들의 양에 해당하는 소정의 비트 수를 가지는, 데이터를 기억한다.
판독 동작 및 기록 동작의 개시 시에, 예컨대, 미리 결정된 개수의 데이터가 메모리 셀들에서 버퍼로 전달된다. 판독 동작에서, 각각의 어드레스 신호들에 상응하는 데이터가 버퍼로부터 판독되어, 데이터 입출력 단자로부터 외부로 출력된다. 기록 동작에서는, 각각의 어드레스 신호들에 상응하는 데이터가 버퍼에 기억되며, 기록 동작의 종료 시에 위의 버퍼의 데이터는 메모리 셀들에 동시에 기록된다.
이러한 방법으로, 페이지 동작이 용이하게 수행된다. 일반적으로, 메모리 코어들(센스 증폭기 등)은 페이지 동작 동안에 활성화 상태가 지속된다. 본 발명의 버퍼가 제공되지 않는다면, 하나의 입출력 포트에 대하여 페이지 동작이 수행되고 있는 동안에, 다른 하나의 입출력 포트에 대하여 메모리 동작을 수행하는 것이 불가능할 것이다. 본 발명에서, 메모리 셀들의 데이터는 동작의 개시 시에 버퍼로 전달되며, 그에 따라서 메모리 코어들은 그 이후 즉시 비활성화될 수 있다. 그 결과, 다중 포트 메모리에 접속된 제어기는 페이지 동작 중에서조차도 다중 포트 메모리의 BUSY 상태인지의 여부를 센스할 필요가 없게 된다.
다음에, 첨부 도면을 참조하여 본 발명의 실시예(제5 형태)에 대하여 설명하기로 한다.
도 111은 본 발명의 실시예(제5 형태)에 따른 다중 포트 메모리의 제1 실시예를 도시하고 있다. 다중 포트 메모리(M)는 CMOS 공정을 이용하여 실리콘 기판 위에 형성된다.
다중 포트 메모리(M)는 두 개의 입출력 포트(PORT-A 및 PORT-B), 신호를 상기 포트(PORT-A 및 PORT-B)와 입출력하게 하는 I/O 회로(5010) 및 복수 개의 메모리 블록(MB)을 포함하고 있다. 메모리 블록(MB) 각각은 DRAM 메모리 코어[메모리셀, 센스 증폭기선(SA) 등을 포함]를 포함하며, 도면에서 도시하고 있지 않은 제어 회로, 복호기 등을 더 포함한다. 메모리셀 각각은 데이터 신호값에 응답하여 전하를 기억하는 커패시터를 더 포함한다. 하나의 메모리 코어가 포트(PORT-A) 또는 포트(PORT-B)를 통해 공급된 행 어드레스 신호에 따라서 선택된다. 소정의 메모리 코어의 센스 증폭기선(SA)의 모든 센스 증폭기는 소정의 메모리 코어의 선택에 응답하여 동시에 활성화된다. 즉, 메모리 코어는 이후 설명될 활성 명령(ACT)에 응답하여 활성화되며, 이 메모리 코어의 모든 메모리 영역들이 선택된다. 판독 데이터 또는 기록 데이터는 센스 증폭기의 활성화 후 공급된 열 어드레스 신호에 따라 메모리셀로부터 판독되거나 메모리셀에 기록된다.
도 112는 다중 포트 메모리(M)의 메모리 블록(MB)과 I/O 회로(5010)의 상세를 도시하고 있다. 도면에서, 굵은 선으로 도시한 신호선들은 복수 개의 선으로 각각 구성되어 있다.
I/O 회로(5010)는, 각각 입출력 포트(PORT-A 및 PORT-B)에 상응하는, 모드 레지스터(5012a 및 5012b), 클록 버퍼(5014a 및 5014b), 데이터 입출력 버퍼(5016a및 5016b), 어드레스 버퍼/레지스터(5020a 및 5020b), BUSY 버퍼(5022a 및 5022b)를 포함하고 있다.
클록 버퍼(5014a), 어드레스 버퍼/레지스터(5018a), 명령 버퍼(5020a)는 클록 신호(CLKA), 어드레스 신호(ADDA), 명령 신호(CMDA)를 이들이 장치의 외부로부터 공급될 때 메모리 블록(MB)으로 공급한다. 입출력 버퍼(5016a)를 사용하여 메모리 블록(MB)으로부터 입력 데이터 신호(DQA)를 출력하고 입력 데이터 신호(DQA)를 메모리 블록(MB)에 입력한다. BUSY 버퍼(5022a)는 BUSY 신호(/BSYA)를 장치의 외부로 출력한다. 클록 버퍼(5014b), 어드레스 버퍼/레지스터(5018b), 명령 버퍼(5020b)는 클록 신호(CLKB), 어드레스 신호(ADDB), 명령 신호(CMDB)를 이들이 장치의 외부로부터 공급될 때 메모리 블록(MB)으로 공급한다. 입출력 버퍼(5016b)를 사용하여 메모리 블록(MB)으로부터 데이터 신호(DQB)를 출력하고, 그 데이터 신호(DQB)를 메모리 블록(MB)으로 입력한다. BUSY 버퍼(5022b)는 BUSY 신호(/BSYB)를 장치의 외부로 출력한다. 클록 신호는 클록 신호(CLKA 및 CLKB), 어드레스 신호(ADDA 및 ADDB), 데이터 신호(DQA 및 DQB), BUSY 신호(/BSYA 및 /BSYB)는 클록 단자, 어드레스 단자, 명령 단자, 데이터 입출력 단자, BUSY 단자를 통해 각각 전송된다. 활성 명령(ACT) 및 활성 명령[예컨대, 판독 명령(RD), 기록 명령(WR)] 등이 메모리 코어의 동작을 제어하기 위한 명령 신호(CMDA 및 CMDB)로서 공급된다. 어드레스 신호(ADDA 및 ADDB)는 서로 분리된 행 어드레스 신호(RA)와 열 어드레스 신호(CA)로서 공급된다. 입출력 포트(PORT-A)에서, 행 어드레스 신호(RA), 열 어드레스 신호(CA), 명령 신호(CMDA)는 클록 신호(CLKA)의 상승 에지와 동기하여 공급된다. 입출력 포트(PORT-B)에서, 행 어드레스 신호(RB), 열 어드레스 신호(CB), 명령 신호(CMDB)는 클록 신호(CLKB)의 상승 에지와 동기하여 공급된다. 이런 식으로 다중 포트 메모리(M)는 입출력 포트(PORT-A 및 PORT-B)에서 전용의 클록 신호(CLKA 및 CLKB)를 수신하고, 클록 신호(CLKA 및 CLKB)와 동기하여 동작한다.
메모리 블록(MB)은, 입출력 포트(PORT-A 및 PORT-B)에 각각 상응하는, 클록 버퍼(5024a 및 5024b), 명령 래치(5026a 및 5026b), 데이터 래치(5028a 및 5028b), 행 어드레스 래치(5030a 및 5030b), 열 어드레스 버퍼(5031a 및 5031b), 열 어드레스 래치(5032a 및 5032b)를 포함하고 있다. 메모리 블록은 입출력 포트(PORT-A 및 PORT-B)에 공통인 중재 회로(5034), 제어 신호 래치(5036), 열 어드레스 카운터(5038), 메모리 코어(5040)를 포함하고 있다. 메모리 코어(5040)는 클록 신호와 동기하여 명령 신호(RAS, CAS, WE), 행 어드레스 신호(RA), 열 어드레스 신호(CA)를 받아들이는 형태로 되어 있다.
입출력 포트(PORT-A)에 상응하는 모드 레지스터(5012a), 클록 버퍼(5024a), 명령 래치(5026a), 데이터 래치(5028a), 행 어드레스 버퍼(5031a), 열 어드레스 래치(5032a)는 중재 회로(5034)로부터 공급된 인에이블 신호(/ENA)가 활성화될 때 동작한다. 입출력 포트(PORT-B)에 상응하는 모드 레지스터(5012b), 클록 버퍼(5024b), 명령 래치(5026b), 데이터 래치(5028b), 행 어드레스 버퍼(5031b), 열 어드레스 래치(5032b)는 중재 회로(5034)로부터 공급된 인에이블 신호(/ENB)가 활성화될 때 동작한다.
즉, 인에이블 신호(/ENA)의 활성화 시, 클록 버퍼(5024a)는 메모리코어(5040)의 클록 단자(CLK)에 클록 신호(CLKA)를 공급한다. 더욱이, 명령 래치(5026a)는 래치된 명령 신호(CMDA)를 제어 신호 래치(5036)에 공급하고, 행 어드레스 버퍼(5031a)는 래치된 행 어드레스 신호(RA)(예컨대, 상위 어드레스 비트에 상응)를 메모리 코어(5040)의 행 어드레스 단자(RA)에 공급한다. 또 열 어드레스 래치(5032a)는 래치된 열 어드레스 신호(CA)(예컨대, 하위 어드레스 비트에 상응)를 열 어드레스 카운터(5038)에 공급하고, 데이터 래치(5028a)는 메모리 코어(5040) 및 입출력 버퍼(5016a)의 입출력 단자(DQ)에서 데이터 신호를 교환한다.
마찬가지로, 인에이블 신호(/ENB)의 활성화 시, 클록 버퍼(5024b)는 클록 신호(CLKB)를 메모리 코어(5040)의 클록 단자(CLK)로 공급한다. 더욱이, 명령 래치(5026a)는 래치된 명령 신호(CMDB)를 제어 신호 래치(5036)에 공급하고, 행 어드레스 버퍼(5031b)는 래치된 행 어드레스 신호(RA)를 메모리 코어(5040)의 행 어드레스 단자(RA)에 공급한다. 또 열 어드레스 래치(5032b)는 래치된 열 어드레스 신호(CA)를 열 어드레스 카운터(5038)에 공급하고, 데이터 래치(5028b)는 메모리 코어(5040) 및 입출력 버퍼(5016a)의 입출력 단자(DQ)에서 데이터 신호를 교환한다.
제어 신호 래치(5036)는 수신된 명령 신호(CMDA 및 CMDB)에 따라 메모리 코어(5040)를 동작시키기 위하여 행 어드레스 스트로브 신호(RAS), 열 어드레스 스트로브 신호(CAS)를 생성하고, 생성된 신호들을 메모리 코어(5040)에 공급한다. 또한, 제어 신호 래치(5036)는 판독 동작 및 기록 동작 중 하나를 표시하는 판독/기록 명령 신호(RWCMD)를 중재 회로(5034)에 공급한다.
열 어드레스 카운터(5038)는 모드 레지스터(5012a 및 5012b)로부터 공급된 버스트 길이에 관한 정보에 따라서 열 어드레스 신호(CA)를 생성하고, 열 어드레스 신호를 메모리 코어(5040)로 출력한다.
중재 회로(5034)는 어드레스 비교 회로(5042)와 중재 제어 회로(5044)를 포함하고 있다. 어드레스 비교 회로(5042)는 입출력 포트(PORT-A 및 PORT-B)로부터 공급된 어드레스 신호(ADDA 및 ADDB) 사이에서 행 어드레스 신호(RA)를 비교하고, 어느 것이 가장 먼저 도달하는 지를 결정한다. 중재 제어 회로(5044)는 어드레스 비교 회로(5042)에 의한 비교에 따라 내부 회로를 동작시키기 위하여 BUSY 신호(/BSYA 및 /BSYB)와 인에이블 신호(/ENA 및 /ENB)를 생성한다.
도 113은 어드레스 비교 회로(5042)의 상세를 도시하고 있다.
어드레스 비교 회로(5042)는 어드레스 도달 순서를 검출하는 어드레스 비교기(5042b)와 두 개의 어드레스 일치 회로(5042a)를 포함하고 있다. 어드레스 일치 회로(5042a)는 어드레스 신호(ADDA) 및 어드레스 신호(ADDB) 사이에서 행 어드레스 신호(RA)의 상응 비트를 비교하는 복수 개의 EOR 회로(5042c)를 포함하며, 개개의 EOR 회로(5042c)에 상응하는 복수 개의 nMOS 트랜지스터(5042d)를 더 포함한다. nMOS 트랜지스터(5042d)는 상응 EOR 회로(5042c)의 출력에 연결된 게이트, 접지된 소스, 서로 연결된 드레인을 가진다. 각각의 EOR 회로(5042c)는 행 어드레스 신호(RA)가 입출력 포트(PORT-A 및 PORT-B) 사이에서 서로 일치할 때 저레벨의 신호를 출력하고, 행 어드레스 신호(RA)의 비트값이 일치하지 않으면 고레벨의 신호를 출력한다. nMOS 트랜지스터(5042d)는 EOR 회로(5042c)로부터의 저레벨의 신호에 응답하여 턴오프되고 고레벨의 신호에 응답하여 턴온된다. 즉, 어드레스 일치 회로(5042a)로부터 출력된 일치 신호(/COIN1 및 /COIN2)는 모든 비트의 행 어드레스 신호(RA)가 상응 비트들 사이에서 일치할 때 부동 상태가 되며 행 어드레스 신호의 적어도 하나의 비트가 상응 비트들 사이에서 상이할 때 저레벨의 신호가 된다. 두 개의 어드레스 일치 회로(5042a)는 도 111에 도시한 메모리 블록(MB)의 상단 및 하단에 배치된다[즉, 입출력 회로(5010)에 근접 배치된다). I/O 회로(5010)에 근접한 어드레스 일치 회로(5042a)의 구성에 의해서 어드레스 일치 회로(5042a)로의 각종의 어드레스 신호(ADDA 및 ADDB)의 전파 지연을 단축할 수 있다. 따라서, 어드레스 신호(ADDA 및 ADDB)는 초기 타이밍 시 비교 가능하며, 그에 따라 고속 동작을 얻을 수 있다.
비교기(5042b)는 일치 신호(/COIN1 및 /COIN2)와 클록 신호(CLKA 및 CLKB)를 수신해서, 선착(先着) 신호(/FSTA 및 FSTB)를 출력한다.
도 114는 비교기(5042b)의 상세를 도시한다.
비교기(5042b)는 클록 신호(CLKA 및 CLKB)의 상승 에지와 동기하여 양의 펄스(PLSA 및 PLSB)를 각각 발생하는 펄스 발생기(5042e)를 포함하고, 입력단에서 펄스(PLSA 및 PLSB)를 수신하는 플립플롭(5042f)을 더 포함한다. 비교기(5042b)는 펄스(PLSA 및 PLSB)를 각각 출력하는 개개의 인버터의 입력으로서 일치 신호(/COIN1 및 /COIN2)를 수신한다. 비교기(5024b)에서 개개의 펄스 신호를 생성하는 NAND 게이트는 소형의 회로 소자로서 구성되므로, NAND 게이트로부터 출력된 신호가 일치신호(/COIN1 및 /COIN2)와 충돌하는 신호 레벨을 가지는 경우에, 일치 신호(/COIN1 및 /COIN2)에 우선 순위가 주어진다. 플립플롭(5042f)은 펄스(PLSA)를 수신하는 경우에 첫 번째 도달 신호(/FSTA)를 저레벨로 낮추고, 펄스(PLSB)를 수신하는 경우에 첫 번째 도달 신호(/FSTB)를 저레벨로 낮춘다.
도 115는 입출력 포트(PORT-A 및 PORT-B)에 공급된 행 어드레스 신호가 서로 일치하는 경우에 실행되는 비교기(5042b)의 동작을 도시하고 있다. 이 실시예에서, 클록 신호(CLKA 및 CLKB)는 동일한 주기를 가진다. 도 113에 도시한 어드레스 일치 회로(5042a)는 행 어드레스 신호(RA)가 일치하는 경우에, 일치 신호(/COIN1 및 /COIN2)를 부동 상태(Hi-Z)가 되도록 한다. 그에 응답하여, 펄스(PLSA 및 PSLB)가 클록 신호(CLKA 및 CLKB)의 상승 에지와 동기하여 각각 발생된다[도 115-(a)]. 도 114에 도시한 플립플롭(5042f)은 다른 하나 보다 먼저 수신된 펄스(PLSA)에 응답하여, 첫 번째 도달 신호(/FSTA)를 활성화시킨다[도 115-(b)]. 보다 늦게 수신된 펄스(PLSB)에 해당하는 첫 번째 도달 신호(/FSTB)는 상기 첫 번째 도달 신호(/FSTA)의 활성화가 끝난 후에 활성화된다[도 115-(c)].
도 116은 행 어드레스 신호(RA)가 입출력 포트(PORT-A 및 PORT-B) 간에 일치하지 않는 경우의 비교기(5024b)의 동작을 도시하고 있다. 이 실시예에서, 클록 신호(CLKA 및 CLKB)는 동일한 주기를 가진다.
상기 어드레스 일치 회로(5042a)는 상기 행 어드레스 신호(RA)가 1 비트라도 일치하지 않는 경우에, 각 일치 신호(/COIN1 및 /COIN2)를 저레벨로 낮춘다[도 116-(a)]. 그에 응답하여, 도 114에 도시한 펄스 발생기(5042e)는 펄스 신호(PLSA및 PLSB)를 클록 신호(CLKA 및 CLKB)와 상관없이 저레벨로 낮춘다[도 116-(b)]. 그 결과, 상기 첫 번째 도달 신호(/FSTA 및 /FSTB)는 고레벨로 유지된다[도 116-(c)].
도 117은 상기 입출력 포트(PORT-A 및 PORT-B)에 공급된 행 어드레스 신호(RA)가 클록 신호(CLKB)와 상이한 주기를 가지는 클록 신호(CLKA)와 일치하는 경우에 비교기(5042b)의 동작을 도시하고 있다. 이 실시예에서, 클록 신호(CLKB)의 주기는 클록 신호(CLKA)의 주기의 2배로 설정된다. 행 어드레스 신호(RA)는 클록 신호(CLKA 및 CLKB)의 상승 에지와 동기하여 각각 얻어진다. 도면에서, 굵은 선으로 도시한 행 어드레스 신호(RA)는 입출력 포트(PORT-A 및 PORT-B)에 공급된 신호를 도시하고 있고, 점선으로 도시한 행 어드레스 신호(RA)는 도 112에 나타난 각 행 어드레스 래치(5030a,5030b)에 의해 유지된 행 어드레스 신호를 도시하고 있다.
행 어드레스 신호(RA)가 일치하는 경우에, 일치 신호(/COIN1 및 /COIN2)는 도 115와 같은 방식으로 부동 상태(Hi-Z)로 된다. 상기 일치 신호(/COIN1 및 /COIN2)의 부동 상태에서, 도 115에 도시한 펄스 발생기(5042e)가 동작함으로써 펄스 신호(PLSA 및 PLSB) 및 첫 번째 도달 신호(/FSTA 및 /FSTB)가 각 클록 신호(CKLA 및 CKLB)의 상승 에지와 동기하여 생성된다.
도 118는 도 112에 나타난 중재 회로(5034)에 설치된 중재 제어 회로(5044)를 도시하고 있다.
중재 제어 회로(5044)는 입출력 포트(PORT-A 및 PORT-B)에 각각 상응하는 제어 회로(5044a 및 5044b)를 포함한다. 제어 회로(5044a)는 리셋 신호(RESETA), 지연 클록 신호(DLKA), 활성 명령 신호(ACTA), 첫 번째 도달 신호(/FSTA) 및 BUSY 신호(/BSYA)를 수신하고, 인에이블 신호(/ENA) 및 BUSY 신호(/BSYB)를 출력한다. 제어 회로(5044b)는 리셋 신호(RESETB), 지연 클록 신호(DLKB), 활성 명령 신호(ACTB), 첫 번째 도달 신호(/FSTB) 및 BUSY 신호(/BSYB)를 수신하고, 인에이블 신호(/ENB) 및 BUSY 신호(/BSYA)를 출력한다.
입출력 포트(PORT-A 및 PORT-B)에 해당하는 판독 및 기록 동작이 끝나면, 리셋 신호(RESTA 및 RESTB)가 소정의 각 주기 동안 작동하게 된다. 지연 클록 신호(DCLKA 및 DCLB)는 클록 신호(CLKA 및 CLKB)를 각각 지연시킴으로써 얻어진 신호이다. 활성 명령 신호(ACTA 및(ACT)B)는 활성 명령(ACT)이 입출력 포트(PORT-A 및 PORT-B)에 공급되는 경우에 동작한다.
도 119는 입출력 포트(PORT-A 및 PORT-B)에 공급된 행 어드레스 신호가 일치하는 경우에 수행된 중재 제어 신호(5044)의 동작을 도시하고 있다. 이 실시예에서, 클록 신호(CLKA 및 CLKB)의 주기는 동일하다. 활성 명령(ACT)이 클록 신호(CLKA)와 동기하여 공급되고, 바로 이어서 클록 신호(CLKB)와 동기하여 활성 명령(ACT)이 공급된다.
제어 회로(5044a)는 지연 클록 신호(DCLKA)의 상승 에지와 동기하여 저레벨의 첫 번째 도달 신호(/FSTA)를 수신하고, BUSY 신호(/BSYB)를 활성화시킨다[도 119-(a)]. 활성 명령 신호(ACTA)의 활성화 및 BUSY 신호(/BSYA)의 비활성 상태에 응답하여, 제어 회로(5044a)는 인에이블 신호(/ENA)를 활성화시킨다[도 119-(b)]. 제어 회로(5044b)가 지연 클록 신호(DCLKB)의 상승 에지와 동기하여 고레벨의 첫 번째 도달 신호(/FSTB)를 얻기 때문에, BUSY 신호(/BSYA)는 활성화되지 않는다[도119-(c)]. 제어 회로(5044b)는 활성화 상태의 활성 명령 신호(ACTB)를 수신하지만, 상기 BUSY 신호(/BSYB)가 활성화되었기 때문에 제어 회로(5044b)는 인에이블 신호(/ENB)를 활성화시키지 않는다[도 119-(d)].
인에이블 신호(/ENA)의 활성화에 응답하여, 입출력 포트(PORT-A)에 공급된 신호는 메모리 코어(5040)에 전송된다. 입출력 포트(PORT-A)에 공급된 판독 명령(RD)에 따른 판독 동작을 수행하는 동안에, 메모리 코어(5040)가 활성화된다. 판독 동작이 끝난 후에, 제어 회로(5044a)는 리셋 신호(RESETA)의 활성화에 응답하여 인에이블 신호(/ENA) 및 BUSY 신호(/BSYB)를 비활성화시킨다[도 119-(e)].
다음에, 전술한 다중 포트 메모리(M)를 그 동작에 관련하여 더 설명한다.
도 120은 입출력 포트(PORT-A 및 PORT-B)에 공급된 행 어드레스 신호(RA)가 서로 일치하는 경우에 수행되는 동작을 도시하고 있다. 이 예에서, 클록 신호(CLKA 및 CLKB)는 동일한 주기를 가지고, 클록 신호(CLKA)의 위상이 클록 신호(CLKB)의 위상 보다 조금 앞선다. 입출력 포트(PORT-A 및 PORT-B)의 버스트 길이는 개개의 모드 레지스터(5012a 및 5012b)에 의하여 4로 설정된다. 여기에서, 버스트 길이는 1 개의 기록 동작 또는 판독 동작 동안에 출력 및 입력되는 데이터 아이템의 수이다.
입출력 포트(PORT-A)는 활성 명령(ACT)[명령 신호(CMDA) 및 행 어드레스 신호(RA)[어드레스 신호(ADDA)]를 클록 신호(CLKA)의 상승 에지와 동기하여 수신한다[도 120-(a)]. 입출력 포트(PORT-A)에 의하여 신호를 수신한 직후에, 입출력 포트(PORT-B)는 활성 명령(ACT)[명령 신호(CMDB)] 및 행 어드레스 신호(RA)[어드레스 신호(ADDB)]를 클록 신호(CLKB)의 상승 에지와 동기하여 수신한다[도 120-(b)]. 여기에서, 명령 신호(CMDA 및 CMDB) 및 어드레스 신호(ADDA 및 ADDB)는 소정의 준비 시간(TS)이 상기 클록 신호(CKLA 및 CLKB)의 각 상승 에지가 발생하기 전으로 설정된 신호 레벨을 가진다.
포트(PORT-B)에 공급된 행 어드레스 신호(RA)는 포트(PORT-A)에 공급된 행 어드레스 신호(RA)와 동일하기 때문에, 첫 번째 도달 신호(/FSTA 및 /FSTB)는 도 115에 도시한 바와 같이 차례로 생성된다. 중재 제어 회로(5044)는 도 119와 연계하여 설명한 첫 번째 도달 신호(/FSTA 및 /FSTB)에 응답하여, 인에이블 신호(/ENA) 및 BUSY 신호(/BSYB)를 활성화시킨다[도 120-(c) 및 (d)]. 이러한 방식에서, 상기 2 개의 어드레스 신호 사이에 도달한 첫 번째 도달 신호는 준비 시간(TS) 동안에 공급된 행 어드레스 신호(RA)와 보다 빠른 위상을 가지는 클록 신호(이 예에서는(CLKA)의 상승 에지를 이용하여 결정된다. 이어서, 행 어드레스 신호(RA)에 상응하는 메모리 코어(5040)는 인에이블 신호(/ENA)의 활성화에 응답하여 동작한다(도 120-(e).
BUSY 신호(/BSYB)에 응답하여, 입출력 포트(PORT-B)에 연결된 CPU와 같은 제어기는 다중 포트 메모리(M)에 공급된 활성 명령(ACT)이 무효화 되었는 지를 확인한다.
입출력 포트(PORT-A)는 판독 명령(RD)[즉, 명령 신호(CMDA)] 및 열 어드레스 신호(CA)[어드레스 신호(ADDA)]를 클록 신호(CLKA)의 다음 상승 에지와 동기하여 수신한다[도 120-(f)]. 입출력 포트(PORT-B)는 판독 명령(RD)[명령 신호(CMDB)] 및열 어드레스 신호(CA)[어드레스 신호(ADDB)]를 클록 신호(CLKB)의 다음 상승 에지와 동기하여 수신한다[도 120-(g)]. 판독 명령(RD)[또는 기록 명령(WR)]은 활성 명령(ACT) 후에 각 클록 신호(CLKA 및 CLKB)의 다음 상승 에지와 동기하여 공급된다. BUSY 신호(/BSYB)에 따라서, 입출력 포트(PORT-B)에 연결된 제어기는 판독 명령(RD) 및 열 어드레스 신호(CA)를 제공하지 않을 수 있다.
데이터가 입출력 포트(PORT-A)에 공급된 열 어드레스 신호(CA)에 상응하는 메모리 셀로부터 판독되면, 메모리 블록(MB)은 데이터를 데이터 신호(DQA)(Q0-Q3)로서 연속하여 출력한다[도 120-(h)]. 데이터 신호(DQA)는 판독 명령(RD)의 수신 이후에 2회의 클록으로 출력된다. 버스트 길이(=4) 만큼의 데이터 신호(DQA)를 출력한 이후에, 메모리 코어(5040)는 프리챠지 동작[도 120-(i)]을 수행하고, 그 결과, 1회의 메모리 주기를 완료한다.
인에이블 신호(/ENA)는 상기 판독 동작의 완료에 응답하여 비활성화 된다[도 120-(j)]. 여기에서는, 프리챠지 동작은 데이터를 메모리 셀에(로부터) 전송하기 위한 비트선들을 소정의 전위까지 충전하여, 행 어드레스 동작에 관련된 회로들을 비활성화한다. 이 프리챠지 동작은 메모리 동작시마다 자동으로 수행된다. 이 프리챠지 동작의 타이밍은 입출력 포트(PORT-A)의 버스트 길이 또는 입출력 포트(PORT-B)의 버스트 길이의 크기에 따라 결정되며, 이 버스트 길이의 크기는 해당 모드 레지스터에 기억된다. 이 실시예에서, 버스트 길이가 4인 경우, 메모리의 주기(즉, 단일의 판독 동작 또는 기록 동작에 필요한 시간)는 4회의 클록 주기로 고정된다. 즉, 판독 동작 및 기록 동작은 언제나 활성 명령의 수신 이후 미리 결정된 시간에완료된다.
데이터(Q1)를 출력하는데 이용되는 클록 신호(CLKA)에 동기하여, 다음 활성 명령(ACT)은 입출력 포트(PORT-A)에 공급된다[도 120-(k)]. 이 특정의 순간에는 명령 신호(CMDB)가 입출력 포트(PORT-B)에 공급되지 않기 때문에, 도 113에 도시한 어드레스 비교 회로(5042)가 행 어드레스 신호(RA)를 비교하면, 불일치되는 결과가 생성된다. 이 때문에, BUSY 신호(/BSYA) 및 BUSY 신호(/BSYB)는 활성화되지 않으며, 인에이블 신호 /ENA만이 활성화된다[도 120-(l)]. 도 116에 도시한 바와 같이, 첫 번째 도달 신호 /FSTA 및 /FSTB는 상위 레벨을 유지한다.
메모리 코어(5040)는 행 어드레스 신호(RA)에 따라 동작하고, 이 어드레스 신호는 전술한 바와 같이 입출력 포트(PORT-A)에 공급된다[도 120-(m)]. 메모리 블록(MB)은 판독 명령(RD)과 후속하는 클록 신호(CLKA)와 동기하여 공급되는 열 어드레스 신호(CA)에 따라 차례 차례로 데이터 신호(DQA)(Q0-Q3)를 출력한다[도 120-9n)].
입출력 포트(PORT-A)에 상응하는 메모리 코어(5040)가 동작을 완료한 후에, 활성 명령(ACT) 및 판독 명령(RD)은 연속해서 입출력 포트(PORT-B)에 공급된다[도 120-(o)]. 특정의 순간에는 명령 신호(CMDA)가 입출력 포트(PORT-A)에 공급되지 않기 때문에, 메모리 코어(5040)는 입출력 포트(PORT-B)에 대하여만 동작함으로써, 데이터 신호(DQB)를 출력한다[도 120-(p)].
도면에 도시하지 않았지만, 메모리 셀의 커패시터에 전하를 재충전하는 리프레시 동작은 행 어드레스 신호(RA)에 따라 수행되고, 이에 따라 리프레시 명령이클록 신호의 상승 에지와 동기되어 공급되며, 행 어드레스 신호(RA)가 리프레시될 메모리 코어를 지정한다. 리프레시 동작은 입출력 포트(PORT-A) 또는 입출력 포트 를 통해 요구될 수 있다. 이 방식의 리프레시 동작은, 한 개의 메모리 코어(5040) 단위로 수행되도록 어드레스 신호가 장치의 외부로부터 공급된다.
도 121은 클록 신호(CLKA 및 CLKB)의 주기가 동일할 때, 수행되는 동작을 나타내고 있으며, 클록 신호(CLKA)의 위상은(CLKB의 주기 위상보다 1/2 주기 이상 앞서 있다. 명령 신호(CDMA 및 CDMB)와, 어드레스 신호(ADDA 및 ADDB)는 복수 개의 포트를 가진 메모리(M)에 공급되는데, 이 메모리는 도 120에 도시한 경우와 동일하다.
이 예에서, 활성 명령(ACT) 및 행 어드레스 신호(RA)가 입출력 포트(PORT-A)에 공급될 때[도 121-(a)], 명령 신호(CMDB) 및 어드레스 신호(ADDB)는 입출력 포트(PORT-B)에 아직 공급되지 않고 있다. 이 때문에, 인에이블 신호(/ENA)는 활성화되고[도 121-(b)], 이 메모리 코어(5040)는 입출력 포트(PORT-A)에 대하여만 동작한다[도 121-(c)]. 이후, 활성 명령(ACT)과 행 어드레스 신호(RA)가 입출력 포트(PORT-A)에 공급된 것과 동일하게 입출력 포트(PORT-B)에 공급된다[도 121-(d)].
제어 회로(5044b)는 도 118에 도시되어 있는데, 이 회로는 BUSY 신호(/BSYB)를 활성화하며[도 121-(e)], 이 활성화는 첫 번째 도달 레벨(/FSTA)의 활성화와 인에이블 신호(/ENA)의 활성화에 따른다. BUSY 신호(/BSYB)에 응답하는 제어기, 예컨대 CPU는 입출력 포트(PORT-B)에 연결되어, 복수 개의 포트를 가진 메모리(M)에 공급된 활성 명령(ACT)이 유효하지 않음을 알아낸다. 이후의 동작들은 전술한 도 120의 동작들과 동일하다.
도 122는 행 어드레스 신호(RA)가 거의 동시에 서로 다른 입출력 포트(PORT-A) 및 입출력 포트(PORT-B)에 공급되는 경우의 동작을 나타낸다. 클록 신호(CLKA 및 CLKB)는 동일한 클록 주기를 가지며, 클록 신호(CLKA)의 위상은 클록 신호(CLKB)의 위상에 약간 앞서 있다. 상기 버스트 길이는 동일하게 4로 설정하며, 이것은 모드 레지스터(12)에 의하여 입출력 포트(PORT-A) 및 입출력 포트(PORT-B) 모두에 설정된다.
행 어드레스 신호(RA)가 다를 때에는, 상이한 메모리 코어(5040)가 동작한다. 비교 회로(5042b)는 도 114에 도시되어 있는데, 첫 번째 도달 신호(/FSTA 및 /FSTB) 모두를 비활성화시킨다. 즉, 어드레스 중재가 수행되지 않는다. 중재 제어 회로(5044)는 첫 번째 도달 신호(/FSTA 및 /FSTB)의 비활성된 상태와 활성 명령 신호(ACTA 및(ACT)B)의 활성 상태에 응답하여, 인에이블 신호(/ENA 및 /ENB)를 활성화한다[도 122-(a) 및 도 122-(b)]. 그 결과, 관련된 메모리 코어(5040)는 활성 명령(ACT)과 행 어드레스 신호(RA)에 응답하여 이 신호들이 입출력 포트(PORT-A)에 공급되도록 동작하고[도 122-(c)], 다른 메모리 코어(5040)는 활성 명령(ACT)과 행 어드레스 신호(RA)에 응답하여 이 신호들이 입출력 포트(PORT-B)에 공급되도록 동작한다. 즉, 입출력 포트(PORT-A) 및 입출력 포트(PORT-B)는 서로 독립적으로 동작한다. 이 행 어드레스 신호(RA)가 서로 다르게 때문에, BUSY 신호(/BSYA) 또는 BUSY 신호(/BSYB) 어느 것도 활성화되지 않는다.
전술한 이 실시예에서, 메모리 코어(5040)는 두 개의 행 어드레스 신호(RA) 사이에 먼저 도달하는 신호에 대하여만 동작하며, 이 신호가 도달한 때는 입출력 포트(PORT-A) 및 입출력 포트(PORT-B)가 동일한 메모리 코어(5040) 내의 두 개의 행 어드레스 신호(RA)를 수신하여 클록 신호(CLKA 및 CLKB)를 각각 동기화 한 때이다. 즉, 이에 따라 복수 개의 포트를 가진 메모리(M)의 클록 동기화 형태가 구현될 수 있다.
중재 회로(5034)는 행 어드레스 신호(RA)를 비교함을 통해 예측될 수 있는 모든 것을 충족하며, 이에 따라 간단한 구성을 통해 구현될 수 있다. 그 결과, 복수 개의 포트를 가진 메모리(M)의 칩 크기는 소형으로 만들 수 있다.
입출력 포트(PORT-A) 및 입출력 포트(PORT-B)가 각각 클록 단자(CLKA 및 CLKB)를 가지고 있기 때문에, 클록 신호(CLKA 및 CLKB)의 주파수들은 입출력 포트(PORT-A) 및 입출력 포트(PORT-B) 마다 서로 별도로 설정될 수 있다. 즉, 복수개의 제어기는 서로 다른 동작 주파수로 동작하며, 이 제어기는 복수 개의 포트를 가진 메모리(M)에 연결될 수 있다.
또한, 두 개의 어드레스 사이에 먼저 도달하는 신호는 행 어드레스 신호(RA)를 사용하여 결정되고, 이 도달 신호는 클록 신호(CLKA 및 CLKB)의 상승 에지와 연관되기 전에 설정된다. 즉, 먼저 도달하는 신호는 어드레스 신호의 설정 시간(tS)을 이용하여 식별된다. 이 때문에, 입출력 포트는 소정의 우선 순위가 있으며, 메모리 코어(5040)가 동작하기 전에 식별될 수 있고, 이에 따라 고속 메모리 동작을 달성할 수 있다. 또한, 먼저 도달한 신호가 클록 신호(CLKA)(또는(CLKB)의 상승 에지에 기초하여 결정되어져 보다 먼저의 위상을 가지기 때문에, 상기 메모리 동작 속도는 한층 향상될 수 있다.
중재 회로(5034)에서, 어드레스 비교 회로(5042)는 행 어드레스 신호(RA)들을 비교하고, 중재 제어 회로(5044)는 어드레스가 일치되어 클록 신호(CLKA 및 CLKB)가 동기화 될 때를 조사하며, 이들 클록 신호는 활성 명령(ACT)를 포착하는데 사용된다. 행 어드레스 신호(RA)가 언제나 소정의 타이밍(즉, 클록 신호의 에지)에서 서로 비교되기 때문에, 메모리 동작과 관련되지 않은 어드레스 신호에 의해 발생된 메모리 코어(5040)의 오작동을 방지할 수 있다.
도 123은 복수 개의 포트를 가진 메모리의 제2 실시예로서 본 발명에 따라 복수 개의 포트를 가진 메모리를 제어하는 방법을 도시하고 있다. 전술한 제1 실시예와 동일한 구성 요소는 동일한 참조 번호를 사용하였고, 이 구성 요소에 대한 세부적인 설명은 생략하였다.
이 실시예에서, 한 개의 메모리 블록(MB)(도면에서는 두꺼운 라인 프레임으로 도시함)은 제1 실시예의 크기의 1/4로 형성된다. 즉, 동시에 활성화된 센스 증폭기의 수는 제1 실시예의 센스 증폭기의 수의 1/4이다. 메모리 블록(MB)의 크기를 제외하고, 모든 구성은 제1 실시예와 동일하다. 도 123의 복수 개의 포트를 가진 메모리(M)가 동시에 구동되는 센스 증폭기를 적게 가지고 있기 때문에, 메모리 동작시에 소비되는 소비 전력은 감소된다.
이 실시예는 전술한 제1 실시예와 동일한 장점을 가지도록 만들어 수 있다. 또한, 이 실시예에서의 소비 전력도 감소될 수 있다.
도 124는 복수 개의 포트를 가진 메모리의 제3 실시예로서 본 발명에 따라 복수 개의 포트를 가진 메모리를 제어하는 방법을 도시하고 있다(제5 형태). 전술한 제1 실시예와 동일한 구성 요소는 동일한 참조 번호를 사용하였고, 이 구성 요소에 대한 세부적인 설명은 생략하였다.
이 실시예에서, 데이터 레지스터들(버퍼들)(5040a 및 5040b)은 각각의 데이터 신호(DQA 및 DQB)를 데이터 래치(5028) 및 메모리 코어(5040) 사이에 임시적으로 기억하고, 각각의 메모리 블록(MB)에 공급된다. 데이터 레지스터들(5040a 및 5040b)은 입출력 포트(PORT-A) 및 입출력 포트(PORT-B) 양쪽 모두에 연관되어 동작한다. 또한, 중재 회로(5044)의 중재 제어 회로(5034)는 제1 실시예의 중재 제어 회로(5034)와는 다르다. 중재 제어 회로(5048)는 BUSY 신호(/BSYA 및 /BSYB)를 출력하지 않고, BUSY 버퍼가 I/O 회로(5010)에 설치되지 않는다. 다른 모든 구성은 제1 실시예의 구성과 동일하다. 즉, 입출력 포트(PORT-A) 및 입출력 포트(PORT-B)에서는 클록 신호(CLKA 및 CLKB), 어드레스 신호(ADDA 및 ADDB), 명령 신호(CMDA 및 CMDB)와, 데이터 신호(DQA 및 DQB)가 클록 단자, 어드레스 단자, 명령 단자 및 데이터 입출력 단자에 각각 전송된다. 메모리 블록(MB)은 DRAM 메모리 코어(5040)를 포함하고, 추가로 제어 회로, 복호기 등을 포함하는데, 이것은 도시가 생략되어 있다. 메모리 셀은 커패시터를 포함하고 있는데, 이 커패시터는 데이터 신호의 값에 따라 전기적으로 전하를 기억한다.
이러한 다중 포트 메모리(M)는 입출력 포트(PORT-A 및 PORT-B)가 동일한 행 어드레스 신호(RA)에 대한 메모리 동작을 위한 요구를 동시에 수신하는 경우에도입출력 포트(PORT-A 및 PORT-B) 모두에 대한 메모리 동작을 수행하는 것이 가능하며, 이에 대하여는 이하 기술한다. 다중 포트 메모리의 메모리 동작 수행이 가능하기 때문에, 제1 실시예에서와 마찬가지로 장치의 외부로 BUSY 신호(/BSYA 및 /BSYB)를 출력할 필요가 없다.
입출력 포트(PORT-A 및 PORT-B) 각각에 있어서, 활성 명령(ACT)이 제공되는 기간은 메모리 코어(5040)의 동작 기간의 2배 이상의 주기가 되도록(타이밍 사양에 따른다) 설정된다. 활성 명령(ACT)의 기간이 동일 입출력 포트(PORT-A 또는 PORT-B)에서의 기간보다 작다면, 공급되는 활성 명령(ACT)이 취소된다. 다른 입출력 포트에 제공되는 활성 명령(ACT)의 기간은 제한되지 않는다.
제1 실시예와 마찬가지로, 판독 명령(RD)과 기록 명령(WR)이 제공되어 활성 명령(ACT)을 수신하는데 사용되는 특정 타이밍을 따르는 클록 신호의 특정 타이밍과 동기된다. 이러한 동작 이후에 메모리 코어(5040)는 자동으로 프리챠지된다. 이 실시예에 있어서, 클록 신호(CLKA,(CLKB)의 주기(tCLK)는 10ns로 설정되고, 버스트 길이(BL)는 4로 설정되며, 데이터 지연 시간(DL)은 4로 설정되는데, 이들은 예시적으로 정해진 것이다. 데이터 지연 시간(DL)은 판독 명령(RD)이 입력되고 데이터가 출력되기까지 클록 주기의 횟수가 된다. 버스트 길이(BL)와 데이터 지연 시간(DL)은 모드 레지스터(5012a 및 5012b)에 설정되어 있다.
도 125는 중재 제어 회로(5048)를 상세히 나타내고 있다.
이 중재 제어 회로(5048)는 제1 실시예의 제어 회로(5044a 및 5044b) 각각에 제어 회로(5048a 및 5048b)를 각각 부가한 구성이다. 입출력 포트(PORT-A)에 상응하는 제어 회로(5048a)는 제어 회로(5044a)로부터 인에이블 신호(/ENA0)와 BUSY 신호(/BSYB)뿐만 아니라 리셋 신호(RESETA)와 리버스 신호(RVS)를 수신하고, 인에이블 신호(/ENA)를 출력한다. 입출력 포트(PORT-B)에 상응하는 제어 회로(5048b)는 제어 회로(5044b)로부터 인에이블 신호(/ENB0)와 BUSY 신호(/BSYA)뿐만 아니라 리셋 신호(RESETB)와 리버스 신호(RVS)를 수신하고, 인에이블 신호(/ENB)를 출력한다. 인에이블 신호(/ENA0, /ENB0)는 제1 실시예의 인에이블 신호(/ENA, /ENB)와 동일한 타이밍에서 생성된다.
도 126은 입출력 포트(PORT-A 및 PROT-B)에 제공되는 행 어드레스 신호가 상호 일치될 때 수행되는 중재 제어 회로(5048)의 동작을 나타낸다. 이 예에 있어서, 클록 신호(CLKA 및 CLKB)의 주기는 동일하다. 클록 신호(CLKA)의 동기화에 있어서, 활성 명령(ACT)은 입출력 포트(PORT-A)에 제공된다. 활성 명령이 제공된 직후, 활성 명령(ACT)이 입출력 포트(PORT-B)에 제공되어 클록 신호(CLKB)와 동기된다. 입출력 포트(PORT-A)에 접속된 제어기는 기록 동작을 요구하고, 입출력 포트(PORT-B)에 접속된 제어기는 판독 동작을 요구한다.
제어 회로(5044a, 5044b)의 동작은 제1 실시예에서의 제어 회로의 동작과 거의 동일하다(도 119 참조). 제어 회로(5044a)는 저레벨인 첫 번째 도달 신호(/FSTA)를 취해 지연 클록 신호(DCLKA)의 상승 에지에 동기시키고, BUSY 신호(/BSYB)를 활성시킨다[도 126-(a)]. 제어 회로(5044b)는 고레벨인 첫 번째 도달 신호(/FSTB)를 취해 지연 클록 신호(DCLKB)의 상승 에지에 동기시킨다. 그러나 BUSY 신호(/BSYA)는 활성화되지 않는다[도 126-(b)]. 제어 회로(5048a)는 BUSY 신호(/BSYB)가 활성화되고 리버스 신호(RVS)가 저레벨이 됨에 따라 인에이블 신호(/ENA)를 활성화 시킨다[도 126-(c)]. 제어 회로(5048b)는 BUSY 신호(/BSYA)가 비활성화되고 리버스 신호(RVS)가 저레벨이 됨에 따라 인에이블 신호(/ENB)를 비활성화시킨다[도 126-(d)].
클록 신호(CLKA 및 CLKB)가 다음 타이밍에 동기될 때는 기록 명령(WR)과 판독 명령(RD)이 각각 제공된다[도 126-(e)]. 기록 명령(WR)과 판독 명령(RD)에 따라, 리버스 신호(RVS)를 생성하는 제어 회로(도시되어 있지 않다)는 리버스 신호(RVS)를 활성화시킨다[도 126-(f)].
리버스 신호(RVS)가 활성화되면, 제어 회로(5048a 및 5048b)는 인에이블 신호(/ENA, /ENB)의 레벨을 각각 전환한다[도 126-(g)]. 이후, 입출력 포트(PORT-B)에 대한 판독 동작이 먼저 수행된다[도 126-(h)]. 판독 동작이 완료된 후, 리셋 신호(RESETB)가 활성화되고 리버스 신호(RVS)가 비활성화된다[도 126-(i)]. 리버스 신호(RESETB)가 비활성화되면 제어 회로(5048a 및 5048b)는 인에이블 신호(/ENA 및 /ENB)의 레벨을 그들 각각의 본래의 레벨로 되돌린다[도 126-(j)]. 이어서, 인에이블 신호(/ENA)의 활성화에 따라 입출력 포트(PORT-A)에 대한 판독 동작이 수행된다[도 126-(k)].
판독 동작이 완료된 후, 리셋 신호(RESETA)가 활성화되고[도 126-(l)], BUSY 신호(/BSYB)가 비활성화된다[도 126-(m)]. BUSY 신호(/BSYB)가 비활성화되면, 제어 회로(5048a)는 인에이블 신호(/ENA)를 비활성화시킨다[도 126-(n)]. 본 실시예에서의 이러한 방법에 있어서, 행 어드레스 신호(RA)가 동일하고, 첫 번째 도달 명령이기록 동작을 요구한 후 두 번째 도달 명령이 판독 명령을 요구하게 되면, 먼저 판독 동작을 수행하도록 메모리 코어(5040)가 제어된다. 다중 포트 메모리를 포함하는 DRAM 등의 메모리 LSI에 있어서는, 기록될 데이터를 수신한 후 메모리 코어를 구동시킴으로써 기록 동작을 수행하고, 먼저 메모리 코어를 구동시킨 다음 데이터를 출력시킴으로써 판독 동작이 이루어지게 된다. 따라서, 기록 동작이 이루어진 후 판독 동작이 수행될 때, 전체의 동작 주기가 통상 길어지게 되는 것이다. 본 실시예에 있어서, 판독 동작과 기록 동작이 충돌하게 되면, 판독 동작이 먼저 수행됨으로써 전체 동작 주기를 줄일 수 있으며, 데이터 신호를 전송하는 데이터 버스를 보다 효율적으로 사용할 수 있게 된다.
다음에, 제3 실시예에 따른 다중 포트 메모리(M)의 동작을 설명한다.
도 127은 입출력 포트(PORT-A 및 PORT-B)가 활성 명령(ACT)과 동일 어드레스 신호(RA)를 수신할 때 판독 동작이 수행되는 방법을 나타낸다. 클록 신호(CLKA)의 위상은 클록 신호(CLKB)의 위상보다 조금 앞서있다. 즉, 활성 명령(ACT)을 입출력 포트(PORT-A)에 입력시키는 시간이 활성 명령(ACT)을 입출력 포트(PORT-B)에 입력시키는 시간보다 조금 앞선다는 것이다.
입출력 포트(PORT-A)에 대하여, 활성 명령(ACT)에 따라 판독 동작(READ)이 수행된다[도 127-(a)]. 메모리 셀로부터 판독된 데이터는 데이터 레지스터[5046a(또는 5046b)]에 기억된다. 입출력 포트(PORT-B)에 대하여는 활성 명령(ACT)에 따라 판독 동작(READ)이 수행된다[도 127-(b)]. 중재 회로(5034)의 제어하에서, 판독 동작(READA)이 완료된 후에 입출력 포트(PORT-B)에 대한 판독 동작(READB)이 수행된다[도 127-(c)]. 판독 동작(READB) 중 메모리 셀로부터 판독된 데이터는 데이터 레지스터[5046b(또는 5046a)]에 기억된다[도 127-(d)]. 이러한 방식에 있어서, 활성 명령(ACT)과 동일 행 어드레스 신호(RA)가 거의 동시에 입출력 포트(PORT-A 및 PORT-B)에 제공되는 경우에도, 각각의 입출력 포트(PORT-A 및 PORT-B)에 대해 판독 동작(또는 기록 동작)이 성공적으로 수행된다. 판독 동작(READA 및 READB)이 각각 완료된 후 메모리 코어(5040)가 자동으로 프리챠지되어 메모리 주기가 완료된다.
데이터 레지스터(5046a)에 기억된 데이터 중 입출력 포트(PORT-A)에 상응하는 복원된 데이터는 도시된 5번째 클록 신호(CLKA)로부터 8번째 클록 신호(CLKA)에 동기되어 판독 명령(RD)이 입력된 후 출력 데이터(Q0-Q3)로서 성공적으로 출력된다[도 127-(e)]. 데이터 레지스터(5046)에 기억된 데이터 중 입출력 포트(PORT-B)에 상응하는 복원된 데이터는 도시된 5번째 클록 신호(CLKB)로부터 8번째 클록 신호(CLKB)에 동기되어 판독 명령(RD)이 입력된 후 출력 데이터(Q0-Q3)로서 성공적으로 출력된다[도 127-(f)].
입출력 포트(PORT-A 및 PORT-B)는 첫 번째 활성 명령(ACT)을 수신하고 4회의 클록 후에 다음 활성 명령(ACT)을 수신하며, 판독 동작(READA 및 READB)을 각각 수행한다[도 127-(g), (h)]. 활성 명령(ACT)이 4회의 클록 주기마다 하나씩 제공된다면, 어떠한 공차 없이도 복원된 데이터를 연속해서 출력(즉, 공차가 없는 판독)할 수 있게 된다. 또, 4회의 클록 주기마다 활성 명령(ACT)을 하나씩 수신함으로써 랜덤 액세스 동작이 이루어지게 된다.
도 128은 활성 명령(ACT)과, 상이한 행 어드레스 신호(RA)가 입출력포트(PORT-A 및 PORT-B)에 제공될 때 판독 동작이 수행되는 방법을 나타내고 있다.
활성 명령(ACT)과 행 어드레스 신호(RA)가 먼저 수신되었던 입출력 포트(PORT-A)에 대하여는, 활성 명령(ACT)에 따라 판독 동작(READA)이 수행된다[도 128-(a)]. 메모리 셀로부터 판독된 데이터는 데이터 레지스터(5046a)에 기억된다[도 128-(b)]. 입출력 포트(PORT-B)에 대하여는, 판독 동작(READA)에 대해 다른 메모리 코어(5040)에 관한 판독 동작(READB)이 활성 명령(ACT)에 따라 수행된다[도 128-(c)]. 즉, 판독 동작(READA 및 READB)은 서로 독립적으로 수행된다. 판독 동작(READB)에 의해 메모리 셀로부터 판독된 데이터는 데이터 레지스터(5046b)에 기억된다[도 128-(d)].
데이터 레지스터(5046a)에 기억된 복원 데이터는 도시된 5번째 클록 신호(CLKA)로부터 8번째 클록 신호(CLKA)에 동기되어 판독 명령(RD)이 입력된 후 출력 데이터(Q0-Q3)로서 성공적으로 출력된다[도 128-(e)]. 데이터 레지스터(5046)에 기억된 데이터 중 입출력 포트(PORT-B)에 상응하는 복원된 데이터는 도시된 5번째 클록 신호(CLKB)로부터 8번째 클록 신호(CLKB)에 동기되어 판독 명령(RD)이 입력된 후 출력 데이터(Q0-Q3)로서 성공적으로 출력된다[도 128-(f)].
입출력 포트(PORT-A 및 PORT-B) 양쪽 모두는 첫 번째 활성 명령(ACT) 이후의 다음 활성 명령(ACT) 4회의 클록을 수신하며, 또한 판독 동작(READA 및 READB)를 각각 수행한다[도 128-(g) 및 (h)].
도 129는 입출력 포트(PORT-A 및 PORT-B)가 활성 명령(ACT) 및 동일 행 어드레스 신호(RA)를 수신할 때 기록 동작이 수행되는 방법을 도시한다.
입출력 포트(PORT-A 및 PORT-B)에 있어서, 기록 명령(WR), 열 어드레스 신호(CA) 및 제1 기록 데이터(Q0과 Q0)는 활성 명령(ACT)을 수신하는데 사용되는 상승 에지 다음에 뒤따르는 각각의 클록 신호(CLKA 및 CLKB)의 상승 에지에 동기하여 공급된다[도 129-(a) 및 (b)]. 그 후, 기록 데이터(Q1 내지 Q3 및 Q0 내지 Q3)는 각각의 클록 신호(CLKA 및 CLKB)에 동기하여 공급된다[도 129-(c) 및 (d)]. 기록 데이터(Q0 내지 Q3 및 Q0 내지 Q3)는 별도의 데이터 레지스터(5046a 및 5046b)에 각각 기억된다[도 129-(e) 및 (f)]. 먼저, 활성 명령(ACT) 및 행 어드레스 신호(RA)를 수신하는 입출력 포트(PORT-A)에 대하여는, 기록 동작(WRITEA)이 기록 데이터(Q3)를 얻는 클록 신호(CLKA)의 특정 타이밍에 동기하여 수행된다[도 129-(g)]. 입출력 포트(PORT-B)에 상응하는 기록 동작(WRITEB)은 기록 동작(WRITEA)을 완료한 후 수행된다[도 129-(h)]. 기록 동작(WRITEA 및WriteB)을 통하여, 각각의 데이터 레지스터(5046a 및 5046b)에 기억된 기록 데이터(Q0 내지 Q3 및 Q0 내지 Q3)가 열 어드레스 신호(CA)에 상응하는 메모리 셀에 기록됨으로써, 기록 동작이 완료된다.
또한, 기록 동작에 있어서, 기록 데이터 세트가 4회의 클록 주기마다 한 번 공급되기 때문에, 기록 데이터가 소정 간격이 없이 연속해서 입력될 수 있다[즉, 공차가 없는 기록].
도 130은 기록 동작 및 판독 동작이 입출력 포트(PORT-A)에 대하여 연속해서 수행되며, 입출력 포트(PORT-A)의 기록 동작에서와 같은 동일 행 어드레스 신호(RA)와 관련된 기록 동작 및 입출력 포트(PORT-A)의 판독 동작에서와 같은 동일 행 어드레스 신호(RA)와 관련된 기록 동작이 입출력 포트(PORT-B)에 대하여 연속해서 수행되는 경우를 도시한다. 첫 번째 기록 동작의 타이밍은 도 127에 도시된 기록 동작의 타이밍과 동일하며, 기록 동작의 타이밍에 대한 설명은 생략한다.
입출력 포트(PORT-B)에 있어서, 두 번째 기록 동작에 상응하는 활성 명령(ACT)은 도 127에서와 동일한 타이밍으로 공급된다[도 130-(a)]. 명령 신호(CMDA)가 입출력 포트(PORT-A)에 공급되지 않기 때문에, 기록 동작(WRITEB)은 기록 데이터(Q0 내지 Q3)를 얻은 바로 직후 수행된다[도 130-(b)].
입출력 포트(PORT-A)에 있어서, 다음 활성 명령(ACT)이 도 130에서 도시된 7번째 클록 신호(CLKA)에 동기하여 공급된다[도 130-(c)]. 도시하지는 않았지만, 입출력 포트(PORT-B)에 대한 인에이블 신호(/ENB)는 이 특정 순간에 활성화된다. 그 결과, 판독 동작(READA)은 기록 동작(WRITEB)을 완료한 후 수행된다[도 130-(d)]. 다중 포트 메모리(M)가 각각의 명령이 수신된 순서로 기록 동작(WRITEB) 및 판독 동작(READA)을 수행하기 때문에, 기록 동작이 완료되기 전에 메모리 셀의 데이터가 판독될 기회가 없다.
또한, 입출력 포트(PORT-A)가 검색된 데이터로서 출력될 수 있기 때문에, 이 데이터는 입출력 포트(PORT-B)에 상응하는 데이터 레지스터(5046b)에 기억되며, 입출력 포트(PORT-B)의 기록 동작(WRITEB) 이전에 입출력 포트(PORT-A)의 판독 동작(READA)을 수행하는 것이 가능하다.
도 131은 기록 동작 및 판독 동작이 입출력 포트(PORT-A)에 대하여 연속해서 수행되며, 입출력 포트(PORT-A)의 기록 동작에서와 같은 동일 행 어드레스신호(RA)와 관련된 판독 동작 및 입출력 포트(PORT-A)의 판독 동작에서와 같은 동일 행 어드레스 신호(RA)와 관련된 기록 동작은 입출력 포트(PORT-B)에 대하여 연속해서 수행되는 경우를 도시한다. 입출력 포트(PORT-A)에 대한 첫 번째 기록 동작의 타이밍과 입출력 포트(PORT-B)에 대한 첫 번째 판독 동작의 타이밍이 도 129에 도시된 기록 동작 및 도 128에 도시된 판독 동작과 각각 동일하다.
입출력 포트(PORT-A)에 있어서, 활성 명령(ACT) 및 판독 명령(RD)는 도 131에 도시된 7번째와 8번째 클록 신호(CLKA)에 동기하여 공급된다[도 131-(a)]. 활성 명령(ACT)이 이 특정 순간에 입출력 포트(PORT-B)에 공급되지 않기 때문에, 입출력 포트(PORT-A)에 대한 판독 동작(READA)이 수행된다[도 131-(b)].
다음에, 입출력 포트(PORT-B)에 있어서, 활성 명령(ACT) 및 기록 명령(WR)은 도 131에 도시된 8번째와 9번째 클록 신호(CLKB)에 동기하여 공급된다[도 131-(c)]. 데이터(Q0 내지 Q3)를 수신한 후, 입출력 포트(PORT-B)에 대한 기록 동작(도시하지 않음)이 수행된다.
도 132는 행 어드레스 신호(RA)가 클록 신호(CLKA 및 CLKB)가 상이한 클록 주기를 갖는 경우에 서로 일치되는 입출력 포트(PORT-A 및 PORT-B)에 공급될 때 수행되는 동작을 도시한다. 이 예에 있어서, 클록 신호(CLKB)의 주기는 클록 신호(CLKA)의 주기의 2배이다.
입출력 포트(PORT-A)에 있어서, 활성 명령(ACT) 및 판독 명령(RD)의 세트는 4회의 클록 주기마다 한 번 공급되며, 판독 동작이 도 127에서와 동일한 방법으로 수행된다. 또한, 입출력 포트(PORT-B)에 있어서, 활성 명령(ACT) 및 판독 명령(RD)의 세트는 4회의 클록 주기마다 한 번 공급된다. 첫 번째 활성 명령(ACT)을 입출력 포트(PORT-B)에 입력하는 것은 첫 번째 활성 명령(ACT)을 입출력 포트(PORT-A)에 입력하는 것보다 늦다[도 132-(a)]. 상기한 바 때문에, 판독 명령(READB)은 도 127의 경우에서와 마찬가지로 판독 명령(READA) 이후에 수행된다[도 132-(b)]. 입출력 포트(PORT-B)의 다음 활성 명령(ACT)에 상응하는 다음 판독 동작(READB)은 두 개의 판독 동작(READA) 사이에 수행된다[도 132-(c)].
이 실시예는 상기한 제1 실시예와 동일한 이점을 제공할 수 있다. 또한, 이 실시예는 메모리 코어(5040)의 동작 주기의 두배 이상인 활성 명령(ACT)의 기간을 각각의 입출력 포트(PORT-A 및 PORT-B)에서 사용한다. 상기한 바 때문에, 입출력 포트(PORT-A 및 PORT-B)에 공급되는 행 어드레스 신호(RA)가 동일하게 공급되더라도, 판독 동작 및 기록 동작이 각 포트에 대하여 확실히 수행될 수 있다. 따라서, 다중 포트 메모리(M)를 제어하는 제어기는 다중 포트 메모리(M)의 BUSY 상태를 검출할 필요가 없다. 따라서, (하드웨어 및 소프트웨어에 대한) 제어기의 제어는 단순화된다.
도 133은 다중 포트 메모리의 제4 실시예 및 본 발명(제5 형태)에 따른 다중 포트 메모리를 제어하는 방법을 도시한다. 제1 및 제3 실시예에서와 동일한 소자는 동일한 참조번호로 참조되며, 동일 소자에 대한 설명은 생략한다.
이 실시예에 있어서, 페이지 버퍼(5050a 및 5050b)는 상기한 제3 실시예의 데이터 레지스터(5046a 및 5046b) 대신에 설치된다. 페이지 버퍼(5050a 및 5050b)는 적어도 하나의 입출력 포트(PORT-A 및 PORT-B)와 관련되어 동작한다. 다른 구성은 제3 실시예에서와 거의 동일하다.
페이지 버퍼(5050a 및 5050b)는 각각 메모리 코어(5040)의 모든 메모리 셀의 데이터를 기억하는 래치를 포함한다. 판독 동작 및 기록 동작 개시시에, 선택된 메모리 코어(5040)의 메모리 셀에 기억되어 있는 데이터는 페이지 버퍼(5050a 또는 5050b)로 판독된다. 판독 동작에 있어서, 페이지 버퍼(5050a)에 래치된 데이터는 열 어드레스 신호(CA)에 응답하여 데이터 신호로서 출력된다. 기록 동작에 있어서, 데이터 신호는 먼저 열 어드레스 신호(CA)에 따라 페이지 버퍼(5050a)에 기록된다. 그 후, 페이지 버퍼(5050a)의 데이터는 기록 동작을 완료한 시각에 메모리 셀에 기록된다.
다음에, 제4 실시예의 다중 포트 메모리(M)의 동작이 설명된다.
도 134는 입출력 포트(PORT-A 및 PORT-B)가 활성 명령(ACT) 및 동일 행 어드레스 신호(RA)를 수신할 때 판독 동작이 수행되는 방법을 도시한다. 클록 신호(CLKA)의 위상은 클록 신호(CLKB)의 위상보다 약간 앞에 있다. 즉, 입출력 포트(PORT-A)에 입력되는 활성 명령(ACT)는 입출력 포트(PORT-B)에 입력되는 활성 명령(ACT)보다 약간 앞에 있다.
입출력 포트(PORT-A)에 있어서, 판독 동작(READA)는 활성 명령(ACT)에 응답하여 수행한다[도 134-(a)]. 데이터는 판독 동작(READA)에 의해 선택된 메모리 코어(5040)의 모든 메모리로부터 판독되며, 검색된 데이터는 페이지 버퍼(5050a 또는 5050b) 중 어느 하나에 기억된다[도 134-(b)]. 한편, 입출력 포트(PORT-B)에 있어서, 행 어드레스 신호(RA)는 입출력 포트(PORT-A)에 공급되는 것과 동일하기 때문에, 활성 명령(ACT)에 상응하는 판독 동작은 수행되지 않는다.
입출력 포트(PORT-A)에 있어서, 판독 명령(RD)는 도 134에 도시된 1번째와 5번째 클록 신호(CLKA)에 동기하여 공급된다. 페이지 버퍼(5050a)에 기억되어 있는 데이터는 각각의 판독 명령(RD)을 수신한 후 5번째 내지 12번째 클록 신호(CLKA)에 동기하여 데이터(Q0 내지 Q7)를 출력으로서 연속해서 출력한다. 즉, 페이지 판독 동작이 수행된다.
동일한 이유로, 입출력 포트(PORT-B)에 있어서, 판독 명령(RD)은 도 134에 도시된 1번째와 5번째 클록 신호에 동기하여 공급된다[도 134-(f) 및 (g)]. 페이지 버퍼(5050a)에 기억되어 있는 데이터는 각각의 판독 명령(RD)을 수신한 후 5번째 내지 12번째 클록 신호(CLKB)에 동기하여 데이터(Q0 내지 Q7)를 출력으로서 연속해서 출력한다. 이 방법에 있어서, 행 어드레스 신호(RA)가 동일하면, 하나의 페이지 버퍼(5050a 또는 5050b)는 입출력 포트(PORT-A 및 PORT-B)에 의하여 공유된다.
입출력 포트(PORT-A, PORT-B)는 모두 첫 번째 활성 명령(ACT)[도 134-(i) 및 (j)]을 수신한 이후에 활성 명령(ACT) 8회 클록 주기를 수신한다. 행 어드레스 신호(RA)는 동일하기 때문에, 판독 동작(READA)만이 수행된다. 입출력 포트에 따른 판독 동작(READB)은 수행되지 않는다. 판독 데이터는 4회의 클록 주기마다 한 번의 판독 명령을 공급하는 만큼의 공차 없이 계속적으로 출력될 수 있다(즉, 공차가 없는 판독).
도 135는 활성 명령(ACT)과 상이한 어드레스 신호(RA)가 입출력 포트(PORT-A 및 PORT-B)로 공급되는 경우, 판독 동작이 수행되는 방법을 도시한다. 입출력포트(PORT-A)에 응답하는 판독 동작의 타이밍은 도 134의 타이밍과 동일하다.
활성 명령(ACT) 및 행 어드레스 신호(RA)를 먼저 수신하는 입출력 포트(PORT-A)에서, 활성 명령(ACT)에 응답하여 판독 동작(READA)이 수행된다[도 135-(a)]. 메모리 코어(5040)의 모든 메모리 셀로부터의 판독 데이터는 페이지 버퍼(5050a)에 기억된다[도 134-(b)].
입출력 포트(PORT-B)에서, 판독 동작(READB)은 판독 동작(READA)의 타이밍과는 다른 타이밍으로 메모리 코어에 따라 활성 명령에 응답하여 수행된다[도 135-(c)]. 데이터는 판독 동작(READB)에 의하여 메모리 코어(5040)의 모든 메모리 셀로부터 판독되어 페이지 버퍼(5050b) 내에 기억된다[도 135-(d)]. 그 이후에, 판독 동작은 도 134와 관련하여 기술한 방법과 같은 방법으로 수행된다. 이 방법에서, 행 어드레스 신호(RA)가 서로 다른 경우, 판독 동작(READA) 및 판독 동작(READB)은 독립적으로 수행되어, 검색된 데이터가 개별적인 페이지 버퍼(5050a 및 5050b)에 각각 기억된다.
도 136은 활성 명령(ACT) 및 동일한 행 어드레스 신호(RA)가 입출력 포트(PORT-A 및 PORT-B)에 공급되어 기록 동작이 수행되고, 이어서 활성 명령(ACT) 및 상이한 행 어드레스 신호(RA)가 공급되어 결국은 기록 동작이 수행되는 경우를 도시한다.
입출력 포트(PORT-A 및 PORT-B)에 있어서, 활성 명령(ACT) 및 동일한 행 어드레스 신호(RA)는 클록 신호(CLKA 및 CLKB)의 각각의 상승 에지에 동기되어 공급된다. 도 133에 도시된 중재 회로(5034)는 입출력 포트(PORT-A)가 먼저 활성명령(ACT)을 수신하여 판독 동작(READA)을 수행함으로써, 데이터를 메모리 셀로부터 페이지 버퍼(5050a 또는 5050b)로 확실하게 전송한다[도 136-(a)].
데이터는 판독 동작(READA)에 의하여 선택된 메모리 코어(5040)의 모든 메모리 셀로부터 판독된어 페이지 버퍼(5050a 또는 5050b)에 기억된다[도 136-(b)]. 반면에, 행 어드레스 신호(RA)는 입출력 포트(PORT-A)에 공급된 신호와 동일하므로, 입출력 포트(PORT-A)에서, 판독 동작은 활성 명령(ACT)에 응답하여 수행되지 않는다.
이에 따라, 입출력 포트(PORT-A)에서 기록 명령(WR) 및 열 어드레스 신호(CA)가 도면에 도시된 첫 번째 및 5번째 클록 신호(CLKA)에 동기되어 공급된다[도 136-(c) 및 (d)]. 클록 신호(CLKA)에 동기되어 연속해서 공급되는 기록 데이터(Q0-Q7)가 페이지 버퍼(5050a)에 기록된다[도 136-(e)]. 즉, 페이지 기록 동작이 수행된다.
입출력 포트(PORT-A)에서, 기록 명령(WR) 및 열 어드레스 신호(CA)가 도면에 도시된 첫 번째 및 5번째 클록 신호(CLKB)에 동기되어 공급된다[도 136-(f) 및 (g)]. 클록 신호(CLKA)에 동기되어 연속해서 공급되는 기록 데이터(Q0-Q7)가 공통 페이지 버퍼(5050a)에 기록된다[도 136-(h)]. 이와 같이 하여, 행 어드레스 신호(RA)가 동일한 경우, 동일한 페이지 버퍼(5050a 또는 5050b)가 기록 동작 중에 입출력 포트(PORT-A)에 의하여 공유된다.
활성 명령(ACT) 및 행 어드레스 신호(RA)를 먼저 수신하는 입출력 포트(PORT-A)에서, 기록 동작(WRITEA)은 클록 신호(CLKA)의 특정 타이밍, 즉 기록데이터(Q7)가 획득된 타이밍에 동기하여 수행된다[도 136-(i)]. 입출력 포트(PORT-B)에 응답하는 기록 동작(WRITEB)은 기록 동작(WRITEA)이 완료된 이후에 수행된다[도 136-(j)].
그 이후에, 입출력 포트(PORT-A 및 PORT-B)에서, 활성 명령 및 서로 다른 행 어드레스 신호(RA)가 클록 신호(CLKA 및 CLKB)의 각각의 상승 에지에 동기하여 공급된다. 도 133에 도시된 중재 회로(5034)는 입출력 포트(PORT-A)가 먼저 활성 명령(ACT)을 수신하여 연속하여 판독 동작(READA, READB)을 확실하게 수행한다는 것을 도시하고 있다[도 136-(k) 및 (l)]. 데이터는 판독 동작(READA)에 의하여 메모리 코어(5040)의 모든 메모리 셀로부터 판독되어 페이지 버퍼(5050a 또는 5050b) 내에 기억된다[도 135-(m)]. 또한, 데이터는 판독 동작(READB)에 의하여 메모리 코어(5040)의 모든 메모리 셀로부터 판독되어 다른 페이지 버퍼(5050a 또는 5050b) 내에 기억된다[도 135-(n)].
입출력 포트(PORT-A)에서 판독 명령(RD) 및 열 어드레스 신호(CA)가 도면에 도시된 13번째 및 17번째 클럭 신호(CLKA)에 동기되어 공급된다[도 136-(o) 및 (p)]. 클록 신호(CLKA)에 동기되어 연속해서 공급되는 기록 데이터(Q0-Q7)가 페이지 버퍼(5050a)에 기억된다[도 136-(q)].
마찬가지로, 입출력 포트(PORT-A)에서 기록 명령(WD) 및 열 어드레스 신호(CA)가 도면에 도시된 13번째 및 17번째 클럭 신호(CLKB)에 동기되어 공급된다[도 136-(r) 및 (s)]. 클록 신호(CLKB)에 동기되어 연속해서 공급되는 기록 데이터(Q0-Q7)가 페이지 버퍼(5048b)에 기록된다[도 136-(t)]. 이와 같이 하여,페이지 버퍼(5050a, 5050b)가 사용되며, 이때 행 어드레스 신호(RA)는 상이하다.
활성 명령(ACT) 및 행 어드레스 신호(RA)를 먼저 수신하는 입출력 포트(PORT-A)에서, 기록 동작(WRITEA)은 클록 신호(CLKA)의 특정 타이밍, 즉 기록 데이터(Q7)가 획득된 타이밍에 동기하여 수행된다[도 136-(i)]. 입출력 포트(PORT-B)에 응답하는 기록 동작(WRITEB)은 기록 동작이 기록 동작(WRITEA)이 완료된 이후에 수행된다[도 136-(u)]. 입출력 포트(PORT-B)에 응답하는 기록 동작(WRITEB)은 기록 동작(WRITEA)이 완료된 이후에 수행된다[도 136-(v)]. 기록 동작(WRITEA 및 WRITEB)을 통하여 페이지 버버(5050a, 5050b)에 기억된 기록 데이터(Q0-Q7)는 열 어드레스 신호(CA)에 응답하는 각각의 메모리 셀에 기록됨으로, 기록 동작을 완료하게 된다.
도 137은 활성 명령(ACT) 및 동일한 행 어드레스 신호(RA)가 입출력 포트(PORT-A 및 PORT-B)에 공급되어 기록 동작이 수행되고, 이어서 활성 명령(ACT) 및 상이한 행 어드레스 신호(RA)가 공급되어 결국은 판독 동작이 입출력 포트(PORT-A)에서 수행되고, 기록 동작이 입출력 포트(PORT-B)에서 수행되는 경우를 도시한다. 첫 번째 기록 동작의 타이밍은 도 137의 타이밍과 동일하므로, 이의 상세한 설명은 생략한다.
입출력 포트(PORT-A 및 PORT-B)에 있어서, 활성 명령(ACT) 및 동일한 행 어드레스 신호(RA)가 도면에 도시한 12번째 클록 신호(CLKA 및 CLKB)의 각각의 상승 에지에 동기되어 공급된다[도 137-(a) 및 (b)]. 도 133에 도시한 중재 회로(5034)는 입출력 포트(PORT-A)가 먼저 활성 명령(ACT)을 수신하여 판독 동작(READA)을 확실하게 수행한다는 것을 도시하고 있다[도 137-(c)]. 데이터는 판독 동작(READA)에 의하여 메모리 코어(5040)의 모든 메모리 셀로부터 판독되어 페이지 버퍼(5050b) 내에 기억된다[도 137-(d)]. 입출력 포트(PORT-B)에 있어서, 행 어드레스 신호(RA)는 입출력 포트(PORT-A)에 공급된 신호와 동일하므로, 활성 명령(ACT)에 응답하는 기록 동작은 수행되지 않는다.
그 이후에, 입출력 포트(PORT-A, PORT-B)에서, 판독 명령(RD)이 도면에 도시된 13번째 및 17번째 클록 신호(CLKA)에 동기되어 공급된다[도 137-(e) 및 (f)]. 페이지 버퍼(5050a)에 기억된 데이터가 각각의 기록 명령(RD)을 수신한 이후에 도면에 도시한 17번째 내지 24번째의 클록 신호(CLKA)에 동기된 출력 데이터(Q0-Q7)로서 연속해서 출력된다[도 137-(g)].
입출력 포트(PORT-A)에서, 기록 명령(WR)이 도면에 도시한 13번째 및 17번째 클록 신호(CLKB)에 동기되어 공급된다[도 137-(h) 및 (i)]. 클록 신호(CLKB)에 동기되어 연속해서 공급되는 기록 데이터(Q0-Q7)가 공통 사용 페이지 버퍼(5050a)에 기록된다[도 137-(j)].
입출력 포트(PORT-A)에서, 기록 동작(WRITEA)은 그에 따라 클록 신호(CLKB)의 특정 타이밍, 즉 기록 데이터(Q7)가 획득된 타이밍에 동기하여 수행된다[도 136-(k)].
도 138은 활성 명령(ACT) 및 동일한 행 어드레스 신호(RA)가 입출력 포트(PORT-A 및 PORT-B)에 공급되어 기록 동작 및 판독 동작이 수행되고, 이어서 활성 명령(ACT) 및 상이한 행 어드레스 신호(RA)가 공급되어 결국은 기록 동작 및판독 동작이 수행되는 경우를 도시한다.
입출력 포트(PORT-A 및 PORT-B)에 있어서, 활성 명령(ACT) 및 동일한 행 어드레스 신호(RA)가 클록 신호(CLKA 및 CLKB)의 상승 에지에 동기되어 공급된다[도 138-(a) 및 (b)]. 중재 회로(5034)는 입출력 포트(PORT-A)가 먼저 활성 명령(ACT)을 수신하여 판독 동작(READA)을 수행할 것인지를 판단한다[도 138-(c)]. 데이터는 판독 동작(READA)에 의해 선택된 메모리 코어(5040)의 모든 메모리 셀로부터 판독되어 페이지 버퍼(5050a 및 5050b) 내에 기억된다[도 138-(d)]. 반면에, 입출력 포트(PORT-B)에서, 행 어드레스 신호(RA)는 입출력 포트(PORT-A)에 공급된 신호와 동일하므로, 판독 동작은 활성 명령(ACT)에 응답하여 수행되지 않는다.
그 이후에, 입출력 포트(PORT-A)에서, 기록 명령(WR)이 첫 번째 및 5번째 클록 신호(CLKA)에 동기되어 공급된다[도 138-(e) 및 (f)]. 클록 신호(CLKA)에 동기되어 연속해서 공급되는 기록 데이터(Q0-Q7)가 페이지 버퍼(5050a)에 기록된다[도 138-(g)].
입출력 포트(PORT-B)에 있어서, 판독 명령(RD)은 제1 및 제5 클록 신호(CLKB)에 동기하여 공급된다[도 138-(h) 및 (i)]. 페이지 버퍼(5050a)에 기억된 데이터는 각 판독 명령(RD)을 수신한 후 클록 신호(CLKB)의 제5 내지 제12 타이밍에 동기하여 차례 차례로 출력 데이터(Q0-Q7)로서 출력된다[도 138-(j)]. 입출력 포트(PORT-A)에 있어서, 기록 동작(WRITEA)은 기록 데이터(Q7)를 획득하는 클록 신호(CLKA)의 특정 타이밍에 동기하여 수행된다[도 138-(k)].
그 후, 입출력 포트(PORT-A 및 PORT-B)에 있어서, 활성 명령(ACT) 및 서로상이한 행 어드레스 신호(RA)는 클록 신호(CLKA 및 CLKB)의 상승 에지에 동기하여 공급된다[도 138-(l) 및 (m)]. 중재 회로(5034)는 활성 명령(ACT)이 처음으로 입출력 포트(PORT-A)에 공급되는지를 확인하여, 판독 동작(READA 및 READB)을 성공적으로 수행한다[도 1380(n) 및 (o)]. 데이터는 판독 동작(READA)에 의하여 선택된 메모리 코어(5040)의 모든 메모리 셀로부터 판독되고, 판독 데이터는 페이지 버퍼(5050a)[또는 (5050b)] 중 하나에 기억된다[도 138-(p)]. 또한, 데이터는 판독 동작(READB)에 의하여 선택된 메모리 코어(5040)의 모든 셀로부터 판독되고, 판독 데이터는 페이지 버퍼(5050b)[또는 (5050a)]의 나머지 하나에 기억된다[도 138-(q)].
입출력 포트(PORT-A)에 있어서, 기록 명령(WR)은 클록 신호(CLKA)의 제13 및 제17 타이밍에 동기하여 공급된다[도 136-(r) 및 (s)]. 클록 신호(CLKA)에 동기된 후에 제공된 기록 데이터(Q0-Q7)는 페이지 버퍼(5050a)내에 기록된다[도 138-(t)].
마찬가지로, 입출력 포트(PORT-B)에 있어서, 기록 명령(WR)은 클록 신호(CLKB)의 제13 및 제17 타이밍에 동기되어 공급된다[도 136-(u) 및 (v)]. 클록 신호(CLMB)에 동기된 후 공급된 기록 데이터(Q0-Q7)는 페이지 버퍼(5050b)내에 기록된다[도 136-(w)].
이 실시예는 전술한 제3 실시예와 동일한 이점을 제공할 수 있다. 또한, 이 실시예에 있어서, 메모리 코어(5040)의 모든 메모리 셀에 대하여 임시 데이터 기억 장치로서의 역할하는 페이지 버퍼(5050a 및 5050b)는 데이터 래치(28)와 메모리 코어(5040) 사이에 위치된다. 이에 의해서, 다중 포트 메모리(M)가 페이지 판독 동작및 페이지 기록 동작을 수행하는 것이 가능하다.
동일한 행 어드레스 신호(RA)가 입출력 포트(PORT-A 및 PORT-B)로 공급되는 경우, 동일한 페이지 버퍼(5050a)가 공유된다. 이에 의해서, 메모리 셀에 기록될 데이터가 덧씌여지는 동작에 의해서 파괴되는 것이 방지된다.
동일한 행 어드레스 신호(RA)가 입출력 포트(PORT-A 및 PORT-B)에 공급된 경우, 판독 동작은 이 포트들 중 어느 하나에만 응답하여 수행된다. 그 때문에, 동작 동안에 전력 소모는 각각의 판독 동작이 양쪽 포트에 대하여 수행된 경우와 비교하여 감소될 수 있다. 페이지 버퍼(5050a 및 5050b)의 사용으로 인하여, 심지어 페이지 동작이 수행되는 경우에도, 다중 포트 메모리(M)를 제어하여 다중 포트 메모리(M)의 BUSY 상태를 검출하는 제어기가 필요하지 않게 된다. 그 결과, 제어기 또는 그런 종류의 다른 것들의 제어(하드웨어 및 소프트웨어의 관점에서)가 용이해진다.
도 139는 다중 포트 메모리의 제5 실시예에 따른 다중 포트 메모리(M)의 동작 및 본 발명의 다중 포트 메모리 제어 방법을 도시한다. 제4 실시예의 구성 요소와 동일한 구성 요소들이 동일한 숫자로 인용되지만, 이것의 상세한 설명은 생략될 것이다.
이 실시예에는 일반적인 버스트 동작에 대한 판독 명령(RD)과 기록 명령(WR) 및 페이지 동작에 대한 판독 명령(PRD)과 기록 명령(PWR_이 제공된다. 다중 포트 메모리(M)의 회로 구성은 제4 실시예의 회로 구성과 상당히 동일하다.
도 139에 있어서, 활성 명령(ACT) 및 동일한 행 어드레스 신호(RA)는 입출력포트(PORT-A 및 PORT-B)에 공급된다[도 139-(a) 및 (b)]. 클록 신호(CLKA 및 CLKB)의 새로운 주기에 동기됨에 있어서, 판독 명령(PRD)이 공급되고[도 139-(c) 및 (d)], 페이지 판독 동작이 수행된다[도 139-(e)]. 페이지 판독 동작의 타이밍은 도 134의 타이밍과 동일하지만, 이것의 상세한 설명은 생략될 것이다.
이후에, 활성 명령(ACT) 및 동일한 행 어드레스 신호(RA)는 입출력 포트(PORT-A 및 PORT-B)에 공급된다[도 139-(f) 및 (g)]. 클록 신호(CLKA 및 CLKB)의 새로운 주기에 의하여 동기화됨에 있어서, 판독 명령(RD)이 공급된다[도 139-(h) 및 (i)]. 판독 동작(READA 및 READB)은 각각의 입출력 포트(PORT-A 및 PORT-B)에 대하여 성공적으로 수행된다[도 139-(j) 및 (k)]. 즉, 일반적인 판독 동작(즉, 버스트 판독 동작]이 수행된다.
이 실시예는 전술한 제4 실시예와 동일한 이점을 제공할 수 있다. 이 실시예가 페이지 동작에 대한 명령(PRD 및 PWR) 뿐만 아니라 일반적인 동작에 대한 명령(RD 및 WR)을 준비하기 때문에, 다중 메모리(M)는 페이지 동작을 수행할 뿐 아니라 공급된 명령 신호에 응답하여 정상 동작을 수행할 것이다.