KR100422490B1 - 반도체 집적 회로 장치 - Google Patents

반도체 집적 회로 장치 Download PDF

Info

Publication number
KR100422490B1
KR100422490B1 KR10-2001-0047544A KR20010047544A KR100422490B1 KR 100422490 B1 KR100422490 B1 KR 100422490B1 KR 20010047544 A KR20010047544 A KR 20010047544A KR 100422490 B1 KR100422490 B1 KR 100422490B1
Authority
KR
South Korea
Prior art keywords
data
register
signal
circuit
dram
Prior art date
Application number
KR10-2001-0047544A
Other languages
English (en)
Other versions
KR20020025660A (ko
Inventor
야마우치다다아키
고자루구니히코
Original Assignee
미쓰비시덴키 가부시키가이샤
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 미쓰비시덴키 가부시키가이샤 filed Critical 미쓰비시덴키 가부시키가이샤
Publication of KR20020025660A publication Critical patent/KR20020025660A/ko
Application granted granted Critical
Publication of KR100422490B1 publication Critical patent/KR100422490B1/ko

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/22Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management 
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/409Read-write [R-W] circuits 
    • G11C11/4093Input/output [I/O] data interface arrangements, e.g. data buffers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/409Read-write [R-W] circuits 
    • G11C11/4096Input/output [I/O] data management or control circuits, e.g. reading or writing circuits, I/O drivers or bit-line switches 
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1072Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers for memories with random access ports synchronised on clock signal pulse trains, e.g. synchronous memories, self timed memories
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2207/00Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
    • G11C2207/10Aspects relating to interfaces of memory device to external buses
    • G11C2207/104Embedded memory devices, e.g. memories with a processing device on the same die or ASIC memory designs

Landscapes

  • Engineering & Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Databases & Information Systems (AREA)
  • Dram (AREA)
  • Memory System (AREA)
  • Storage Device Security (AREA)

Abstract

인터페이스 회로(2)는 어드레스 신호(ADD.)에 의해 지정되는 영역이 논리 제어 영역인 경우에는, DRAM(4)과 데이터를 송수신하는 대신에, 레지스터(6)와 데이터 송수신을 실행한다. 그 때의 데이터 신호 DATA는 레지스터에 유지되는 논리 회로(8)에 대한 제어 명령이나 처리를 위한 입력 데이터이다. 레지스터(6)의 유지 내용에 따라서 논리 회로(8)는, 예컨대, 암호 처리나 화상 처리 등의 처리 시간의 최상 경로(critical path)를 담당한다. 처리 결과는 레지스터(6)에 보존된다. 논리 회로(8)는 제어 신호에 따라서 데이터 처리를 실행할 대상으로 되는 데이터를 DRAM(4)에 저장되어 있는 기억 데이터 또는 단자(14)로부터 인가되는 데이터 중 어느 한쪽으로 전환한다.

Description

반도체 집적 회로 장치{SIMPLY INTERFACED SEMICONDUCTOR INTEGRATED CIRCUIT DEVICE INCLUDING LOGIC CIRCUITRY AND EMBEDDED MEMORY CIRCUITRY}
본 발명은 반도체 기억 장치에 관한 것으로서, 더욱 특정적으로는 논리 회로를 내장한 반도체 기억 장치 및 그 제어 방법에 관한 것이다.
도 101은 종래의 64Mbit의 용량을 갖고, 워드 구성이 ×16bit인 동기형 다이내믹 랜덤 액세스 메모리(SDRAM)의 핀 배치를 도시한 도면이다.
도 102는 SDRAM의 단자명과 기능을 도시한 도면이다.
도 101 및 도 102를 참조하면, 종래의 SDRAM은, 예컨대, 54핀의 단자를 갖는 패키지에 수납되어 있고, 마스터 클럭이 입력되는 단자 CLK, 클럭 인에이블 신호가 입력되는 단자 CKE, 칩 선택 신호가 입력되는 단자 /CS, 행어드레스 스트로브 신호가 입력되는 단자 /RAS, 열어드레스 스트로브 신호가 입력되는 단자 /CAS, 기록 인에이블 신호가 입력되는 단자 /WE를 갖고 있다.
종래의 SDRAM은 또한 데이터 입출력 신호를 송수신하는 단자 DQ0∼DQ15, 출력 디스에이블 신호/기록 마스크 신호가 입출력되는 단자 DQM(U/L), 어드레스가 입력되는 단자 A0∼A11, 뱅크 어드레스가 입력되는 단자 BA0, BA1, 전원이 인가되는 단자 VDD, 출력용 전원이 인가되는 단자 VDDQ, 접지 전위가 인가되는 단자 VSS, 출력용 접지 전위가 인가되는 단자 VSSQ를 갖고 있다.
이들 단자는, 도 101에 도시하는 바와 같이, 1번 핀부터 13번 핀 및 42번 핀부터 54번 핀 사이에 데이터 입출력 단자 및 전원이 배치되고, 15번 핀부터 19번 핀 및 37번 핀부터 39번 핀 사이에 제어 신호 및 클럭 신호가 배치되어 있고, 20번 핀부터 35번 핀 사이에 어드레스 입력 핀이 배치되어 있다. 이러한 단자 배치는 어느 정도 범용성을 갖고 있어 메모리를 탑재하는 시스템에 이용되는 기판에도 자주 사용되고 있다.
도 103은 종래의 논리 내장 다이내믹형 랜덤 액세스 메모리(이하, DRAM)의 구성을 도시한 도면이다.
도 103을 참조하면, 칩(501)에는 DRAM(504)과 논리(508)가 탑재되어 있고, DRAM으로의 액세스용 제어 신호 /RAS, /CAS, …, /CS나, 어드레스 신호 ADD. 및 데이터 신호 DATA를 입력 또는 출력하는 단자가 마련되어 있다.
칩(501)에는 또한 논리 특유의 제어핀 CTR0, CTR1이나 논리에 대해 액세스 요구를 행하는 요구 신호 REQ를 입력하는 단자 및 논리가 처리 완료를 외부에 알리기 위한 스트로브 신호 STRB를 출력하기 위한 단자를 포함하고 있다.
종래는 논리(508)를 제어하기 위해서 논리(508)를 위한 특유한 핀을 마련하고 있었기 때문에 도 101에 도시한 바와 같은 범용적인 DRAM에 대해서 핀 수가 증가하거나, 또 보드 상에서 시스템을 편성하기 위해서 논리 혼재 DRAM을 제어하기 위한 전용 제어기를 준비할 필요가 있었다. 따라서, 통상의 마이크로 컴퓨터에 접속하는 것과 같은 범용성이 소실되거나 또는 시스템을 제어하기 위해서 마이크로컴퓨터에 특수한 명령을 사용할 필요가 있었다.
본 발명의 목적은 범용적인 DRAM과 마찬가지의 제어 방법에 의해 논리부를 제어하는 것이 가능한 논리 회로를 메모리 회로와 혼재한 반도체 집적 회로 장치를 제공하는 것이다.
본 발명의 다른 목적은 DRAM 등의 메모리 회로와 논리 회로가 혼재되는 반도체 집적 회로 장치에 있어서, 메모리 회로에 기억되는 데이터에 대해서 소정의 논리 연산 처리를 실행한 결과를 외부에서 취급하기 쉬운 인터페이스를 거쳐 송수신할 수 있는 반도체 집적 회로 장치를 제공하는 것이다.
도 1은 본 발명의 실시예 1의 반도체 집적 회로 장치(1)의 구성을 도시한 블럭도,
도 2는 실시예 1의 논리 내장 반도체 기억 장치의 메모리 맵의 예를 도시한 도면,
도 3은 외부로부터 입력되는 신호가 논리 회로로 전달되는 상태를 설명하기 위한 도면,
도 4는 반도체 집적 회로 장치(1)의 동작 모드 중 하나인 「통상 모드」의 동작을 설명하기 위한 도면,
도 5는 통상 모드에 있어서의「판독 액세스」시의 동작을 설명하기 위한 도면,
도 6은 반도체 집적 회로 장치(1)의 동작 모드 중 다른 하나인 「블럭 모드」의 동작을 설명하기 위한 도면,
도 7은 반도체 집적 회로 장치(1)의 동작 모드 중 또 다른 하나인 「버퍼 모드」의 동작을 설명하기 위한 도면,
도 8은 3개 모드의 동작을 설명하기 위한 흐름도,
도 9는 논리 회로(8)가 실행할 수 있는 암호 방식의 예를 도시한 도면,
도 10은 비밀키 암호 방식으로서 이용되는 DES의 암호화 처리 기본 단위를 도시한 개념도,
도 11은 트리플 DES의 처리 방식을 도시한 제 1 개념도,
도 12는 트리플 DES의 처리 방식을 도시한 제 2 개념도,
도 13은 도 10에 대응하여 실행되는 복호화 처리를 도시한 개념도,
도 14는 도 11에 대응하여 실행되는 복호화 처리를 도시한 개념도,
도 15는 도 12에 대응하여 실행되는 복호화 처리를 도시한 개념도,
도 16은 EBC 모드에 있어서의 암호화 처리를 설명하기 위한 개념도,
도 17은 EBC 모드에 있어서의 복호화 처리를 도시하기 위한 개념도,
도 18은 CBC 모드에서의 암호화 처리를 설명하기 위한 개념도,
도 19는 도 18과 같이 하여 암호화 처리된 암호문을 복호화하기 위한 처리를 도시한 개념도,
도 20은 각종 암호화 모드가 존재하는 경우에 도 8에서 설명한 처리를 설명하기 위한 타이밍도,
도 21은 통상 모드의 기록 액세스에 있어서 동일 페이지에 데이터가 기록되는 경우의 동작을 설명하기 위한 도면,
도 22는, 통상 모드에 있어서, 다른 페이지에 64비트 데이터를 기록해 가는 경우의 동작을 설명하기 위한 타이밍도,
도 23은, 통상 모드에 있어서, 동일 페이지에 대해서 판독 액세스가 실행된 경우의 동작을 설명하기 위한 타이밍도,
도 24는 다른 페이지에 판독 액세스된 경우의 동작을 설명하기 위한 도면,
도 25는 외부 클럭 신호 Ext.CLK가 50㎒인 경우의 반도체 집적 회로 장치(1)의 동작을 설명하기 위한 타이밍도,
도 26은 통상 모드 시에 다른 페이지에 기록 액세스가 실행되었을 때의 동작을 설명하기 위한 타이밍도,
도 27은 통상 모드인 경우에 동일 페이지로의 판독 액세스가 실행되었을 때의 동작을 설명하기 위한 도면,
도 28은 통상 모드에서 다른 페이지에 판독 액세스가 실행된 경우의 동작을 설명하기 위한 타이밍도,
도 29는 논리 회로(8)에 인가되는 내부 클럭 신호 clkL이 50㎒로 변환된 경우의 동작을 설명하기 위한 타이밍도,
도 30은 통상 모드인 경우에 동일 페이지에 판독 액세스를 실행했을 때의 동작을 설명하기 위한 타이밍도,
도 31은 통상 모드인 경우에 다른 페이지에 판독 액세스가 실행된 경우의 동작을 설명하기 위한 타이밍도,
도 32는 본 발명의 반도체 집적 회로 장치(1)와 마이크로 컴퓨터(90)가 접속되는 상태를 도시한 개념도,
도 33은 본 발명의 반도체 집적 회로 장치(1)와 마이크로 컴퓨터(90)가 접속되는 다른 상태를 도시한 도면,
도 34는 반도체 집적 회로 장치(1)의 제어를 설명하기 위한 흐름도,
도 35는 반도체 집적 회로 장치(1)의 블럭 모드를 적용하는데 적합한 시스템의 일 예를 도시한 도면,
도 36은 블럭 모드에서 동작하는 반도체 집적 회로 장치(1)를 캐쉬 메모리(96)가 존재하는 시스템에 적용하는 경우의 구성을 도시한 개념도,
도 37은 반도체 집적 회로 장치(1)의 버퍼 모드를 이용할 때에 적합한 시스템의 구성을 도시한 개략 블럭도,
도 38은 실시예 1의 반도체 집적 회로 장치(1)의 구성을 변형한 실시예 3의 논리 내장 DRAM(30)의 구성을 도시한 블럭도,
도 39는 실시예 3의 논리 내장 DRAM(30)에 적용되는 시스템의 메모리 맵을 도시한 도면,
도 40은 제 1 데이터 레지스터(84)로의 데이터 기록을 도시한 도면,
도 41은 제 1 데이터 레지스터(84)로부터의 데이터 판독을 도시한 도면,
도 42는 도 38에 도시한 논리 내장 DRAM(30)의 동작을 설명하기 위한 제 1 흐름도,
도 43은 도 38에 도시한 논리 내장 DRAM(30)의 다른 동작을 설명하기 위한 흐름도,
도 44는 제 1 및 제 2 데이터 레지스터를 SRAM에 의해 구성한 경우의 구성을 도시한 도면,
도 45는 본 발명의 실시예 4의 논리 내장 DRAM(130)의 구성을 설명하기 위한 개략 블럭도,
도 46은 레지스터-레지스터 동작을 설명하기 위한 개념도,
도 47은 논리 내장 DRAM(130)의 동작을 더욱 자세하게 설명하기 위한 흐름도,
도 48은 도 47에 도시한 바와 같은 처리 흐름 중 논리 내장 DRAM(130)의 동작을 설명하기 위한 타이밍도,
도 49는 도 45에 도시한 논리 내장 DRAM(130)의 다른 동작을 설명하기 위한 개념도,
도 50은 제 1 레지스터(84) 및 제 2 레지스터(86)와 카운터(85) 및 카운터(87)의 동작 개념을 설명하기 위한 개념도,
도 51은 도 49에서 설명한 동작을 더욱 자세하게 설명하기 위한 흐름도,
도 52는 외부 데이터 버스의 상태를 도시한 도면,
도 53은, 「레지스터-DRAM 전송 모드」에 있어서, 풀 페이지 모드의 동작을 도시한 타이밍도,
도 54는 레지스터 0, 제 1 데이터 레지스터(84) 및 제 2 데이터 레지스터(86)에 대한 어드레스의 할당을 도시한 도면,
도 55는 레지스터에 유지되는 데이터의 예를 도시한 도면,
도 56은 DRAM-레지스터 동작 모드를 설명하기 위한 개념도,
도 57은 도 56에서 설명한 동작을 더욱 자세하게 설명하기 위한 흐름도,
도 58은 레지스터-DRAM 전송 모드에서 동작할 때의 전송 효율을 향상시키기 위한 데이터 전송 타이밍의 개념을 도시한 도면,
도 59는 데이터 전송의 효율을 향상시키기 위한 동작을 설명하는 타이밍도,
도 60은 CBC 모드에서의 암호화 또는 복호화 처리를 실행하기 위한 회로 구성의 일 예를 도시한 도면,
도 61은 본 발명의 실시예 5의 논리 내장 DRAM(132)의 구성을 설명하기 위한 개략 블럭도,
도 62는 실시예 4의 논리 내장 DRAM(132)의 레지스터-레지스터 동작을 설명하기 위한 개념도,
도 63은 논리 내장 DRAM(132)의 동작을 더욱 자세하게 설명하기 위한 흐름도,
도 64는 도 61에 도시한 바와 같은 처리의 흐름 중 논리 내장 DRAM(132)의 동작을 설명하기 위한 타이밍도,
도 65는 도 61에 도시한 논리 내장 DRAM(132)의 레지스터-DRAM 동작을 설명하기 위한 개념도,
도 66은 도 65에서 설명한 동작을 더욱 자세하게 설명하기 위한 흐름도,
도 67은 실시예 5의 변형예 1에 있어서 레지스터(84)와 논리 회로(74) 사이의 데이터 전송 처리를 설명하기 위한 개념도,
도 68은 실시예 5의 변형예 2에 있어서 레지스터(84)로부터 데이터 출력까지의 경로를 설명하기 위한 개념도,
도 69는 「DRAM-레지스터 동작 모드」를 설명하기 위한 개념도,
도 70은 도 69에서 설명한 동작을 더욱 자세하게 설명하기 위한 흐름도,
도 71은 자동 리프레시의 내부 명령을 생성하는 회로의 구성을 도시한 블럭도,
도 72는 「저 파워 모드」로의 엔트리 방법을 도시한 타이밍도,
도 73은 「저 파워 모드」에서의 입력 버퍼(40) 또는 (46)의 제어를 실행하는 회로 구성을 도시한 도면,
도 74는 도 73에 도시한 회로의 동작을 설명하기 위한 타이밍도,
도 75는 인터넷 상의 안전한 데이터 통신 처리를 간단히 설명하기 위한 도면,
도 76은 본 발명의 실시예 9에 따른 논리 내장 DRAM의 구성을 설명하기 위한 개략 블럭도,
도 77은 DRAM 제어부(42b)와 뱅크 #0에 대응하는 열디코더(58.0) 및 센스 앰프(60.0)와 I/O부의 구성을 추출해서 도시한 개략 블럭도,
도 78은 데이터가 비트선 쌍에 판독되고, 또 I/O선 쌍 LI/O, /LI/O에 판독되는 동작을 설명하기 위한 타이밍도,
도 79는 열계 제어부(1206)의 구성을 도시한 도면,
도 80은 종래의 자동 프리차지에 의한 기록 동작이 실행되는 경우의 타이밍을 도시한 타이밍도,
도 81은 기록 동작을 제어하기 위한 구성을 추출해서 도시한 개략 블럭도,
도 82는 도 81에 도시한 기록계의 제어 회로의 동작을 설명하기 위한 타이밍도,
도 83은 리프레시 동작 시에서의 오동작을 방지하기 위한 자동 리프레시 동작을 제어하는 구성을 설명하기 위한 개략 블럭도,
도 84는, 도 83에 있어서, 설명한 자동 리프레시 동작에 있어서 전류 피크의 삭감 효과를 설명하기 위한 도면,
도 85는 내부 전원 전위 발생 회로(1100)에 관한 구성을 도시한 개략 블럭도,
도 86은 전원 차단 모드로 들어가는 동작(엔트리)과 전원 차단 모드에서 빠져나가는 동작(엑시트)을 설명하기 위한 타이밍도,
도 87은 클럭 버퍼(44) 구성의 일 예를 도시한 회로도,
도 88은 클럭 버퍼(44) 다른 회로 구성을 도시한 회로도,
도 89는 논리 내장 DRAM(1000)이 이용되는 시스템의 구성을 도시한 개념도,
도 90은 애플리케이션에 의해서 필요한 메모리의 동작 주파수를 도시한 도면,
도 91은 클럭 주파수에 따라서 DRAM부의 동작 속도를 변화시키는 것이 가능한 구성을 설명하기 위한 개념도,
도 92는 외부 클럭 신호 Ext.CLK에 따라서 내부 전원 전위를 제어하는 다른 구성을 도시한 개략 블럭도,
도 93은 내부 전원 전위의 제어 동작을 설명하기 위한 도면,
도 94는 주파수 검지 회로(1800)의 구성을 설명하기 위한 개략 블럭도,
도 95는 도 94에 도시한 주파수 검지 회로의 동작을 설명하기 위한 타이밍도,
도 96은 내부 전원 전위 발생 회로(1100) 내의 내부 전원 회로의 구성을 설명하기 위한 개략 블럭도,
도 97은 내부 전원 전위를 제어하기 위한 다른 구성을 도시한 개략 블럭도,
도 98은 동작 속도 모드가 복수 종류 있는 경우의 메모리 공간 할당의 일 예를 설명하기 위한 메모리 맵,
도 99는 I/O버퍼(52) 중 구동 회로의 구성을 설명하기 위한 개략 블럭도,
도 100은 도 76에 도시하고 있는 I/O버퍼(52) 중 구동 회로의 다른 구성을 설명하기 위한 개략 블럭도,
도 101은 종래의 동기형 다이내믹 랜덤 액세스 메모리(SDRAM)의 핀 배치를 도시한 도면,
도 102는 SDRAM의 단자명과 기능을 도시한 도면,
도 103은 종래의 논리 내장 DRAM의 구성을 도시한 도면.
도면의 주요부분에 대한 부호의 설명
1 : 반도체 집적 회로 장치 2 : 인터페이스부
3 : 버퍼 4 : 메모리부
4a : 처리 어드레스 영역 4b : 버퍼 어드레스 영역
5 : 디코딩 회로 6 : 레지스터
7 : 내부 클럭 발생 회로 8 : 논리 회로
9 : 내부 인터페이스부
32 : SDRAM부 34 : 논리부
36 : 인터페이스부 38 : DRAM 코어
40 : 제어 신호 입력 회로 42 : 제어 회로
44 : 클럭 버퍼 46 : 어드레스 버퍼
48 : 멀티플렉서 50 : 모드 레지스터
52 : 입출력 회로 54 : 메모리셀 어레이
56 : 행디코더
60 : 센스 앰프 드라이버/기록 드라이버
72 : 레지스터부 74 : 암호 연산 논리
76 : 선택기 78 : 제어 레지스터
80 : 모드 레지스터 82 : 상태 레지스터
84 : 제 1 데이터 레지스터 86 : 제 2 데이터 레지스터
90 : 마이크로 컴퓨터 94 : CPU 코어
96 : 캐쉬 메모리 98 : 메모리 제어기
100 : 외부 버스 인터페이스 회로 102 : 내부 버스
104 : 직렬 인터페이스 106 : 플래시 메모리
본 발명은 요약하면, 반도체 집적 회로 장치로서, 단자군, 메모리셀 어레이 및 논리 회로를 구비한다.
단자군은 외부로부터 인가되는 제어 신호, 어드레스 신호 및 데이터를 받는다. 메모리셀 어레이는 어드레스에 의해서 지정되는 영역에 대해서 제어 신호에 따라 데이터의 송수신을 실행한다. 논리 회로는 단자군으로부터 인가되는 제어 신호, 어드레스 신호 및 데이터를 받아 어드레스가 소정의 영역을 지정했을 때에 제어 신호, 어드레스 신호 및 데이터 중 적어도 어느 하나에 따라 연산 처리를 실행한다. 논리 회로는 제어 신호에 따라서 연산 처리를 실행하는 대상으로 되는 데이터를 메모리셀 어레이에 저장되어 있는 기억 데이터 및 단자군으로부터 인가되는 데이터 중 어느 한쪽으로 전환한다.
따라서, 본 발명의 이점은 범용적인 메모리에 대해서 데이터, 어드레스 신호 및 제어 신호를 인가하는 것과 마찬가지 순서(시퀀스)로 신호를 인가하는 것에 의해 내장되는 논리 회로를 제어할 수 있고, 기존의 시스템에 큰 변경을 가할 필요가 없이 용이하게 제어할 수 있는 것이다. 또한, 메모리 회로와 논리 회로가 혼재되는 반도체 집적 회로 장치에 있어서, 메모리 회로에 기억되는 데이터에 대해서 소정의 논리 연산 처리를 실행한 결과를 외부로부터 취급하기 쉬운 인터페이스를 거쳐 더욱 고속으로 송수신할 수 있다.
이하에서 본 발명의 실시예에 대해서 도면을 참조하여 자세하게 설명한다. 또한, 도면 중 동일 부호는 동일 또는 상당 부분을 나타낸다.
(실시예 1)
도 1은 본 발명의 실시예 1의 반도체 집적 회로 장치(1)의 구성을 도시한 블럭도이다.
도 1을 참조하면, 반도체 집적 회로 장치(1)는 제어 신호 /RAS, /CAS, …, /CS, /WE 등의 제어 신호를 받는 단자(10), 어드레스 신호 ADD를 받는 단자(12), 데이터 신호 DATA를 받는 단자(14), 외부 클럭 신호 Ext.CLK를 받는 단자(16), 제어 신호 /RAS, /CAS, …, /CS, /WE, 어드레스 신호 ADD. 및 데이터 신호 DATA에 따라 내부로 제어 신호를 출력하는 인터페이스부(2), 인터페이스부(2)의 출력을 받아 동작하는 메모리부(DRAM)(4), 인터페이스부(2)로부터 인가되는 데이터나 명령 또는 논리 연산 처리 결과를 유지하는 레지스터(6), 레지스터(6) 및 인터페이스부(2)로부터의 출력에 따라 신호 처리 등의 동작을 실행하는 논리 회로(8), 외부 클럭 신호 Ext.CLK에 따라서, 메모리부(DRAM)(4)에 대한 내부 클럭 신호 clkM 및 논리 회로(8)로의 내부 클럭 신호 clkL을 생성하기 위한 내부 클럭 발생 회로(7), 레지스터(6)와 인터페이스부(2) 및 메모리부(4) 사이에서의 데이터 송수신을 실행하는 중개를 하기 위한 내부 인터페이스부(9)를 포함한다. 인터페이스부(2)와 메모리부(4) 및 내부 인터페이스부(9) 사이의 데이터 송수신은 내부 버스 mbus를 거쳐서 실행된다.
칩(1)의 단자는 범용 DRAM에서 이용되는 단자와 공통이다. 따라서, 범용 DRAM 칩을 수납하고 있는 것과 동일한 패키지를 이용할 수 있다. 예컨대, 도 101에 도시한 바와 같은 핀 배치를 갖는 패키지이다.
그 때문에, 본 발명의 반도체 집적 회로 장치(1)를 기존의 애플리케이션에서 이용하는 경우에 기존의 범용 DRAM과 교체시키면 되므로, 보드의 재설계나 전용의 제어 LSI를 개발할 필요가 없다. 즉, 범용 DRAM과 핀을 겸용할 수 있기 때문에, 소프트웨어의 변경만으로 새로운 기능을 추가할 수 있다. 예컨대, 새로운 기능으로서는 화상의 고속 처리용 회로나 암호 처리 등의 마이크로 컴퓨터에서는 시간이 걸리는 처리를 실행하는 논리 회로의 추가가 고려된다. 또, 범용 DRAM을 수납하고 있는 패키지에 여러 개의 미사용 단자, 예컨대, 도 101에 있어서의 36번 핀이나 40번 핀과 같은 NC(non connection) 핀을 이용하여 제어 신호를 입력하도록 해도 좋다.
다음에, 구체적인 제어 방법을 설명한다. 탑재되는 논리 회로(8)의 제어에는 소위 메모리 맵 IO방식을 적용한다.
도 2는 실시예 1의 논리 내장 반도체 기억 장치의 메모리 맵의 예를 도시한 도면이다.
도 2를 참조하면, 칩에 탑재되는 DRAM의 용량을 64Mbit로 하고, 워드 구성을 ×16으로 한다. DRAM의 어드레스는 X어드레스가 X0∼X13, Y어드레스가 Y0∼Y7이다. 따라서, 8Mbyte를 제어하는 메모리 어드레스는 0h∼3FFFFFh이다.
범용의 DRAM에서는 이 어드레스 공간 전부에 데이터를 기록하여 판독할 수 있다. 이러한 데이터를 기록하여 판독할 수 있는 공간을 DRAM 공간이라고 부르기로 한다. 본 발명에서는 어드레스 공간의 임의의 특정 영역을 탑재할 논리 회로를 위한 논리 제어 영역에 할당한다. 예컨대, 어드레스의 0h∼1Fh의 공간을 논리 제어 영역에 할당한다. 논리 제어 영역의 용량은, 예컨대, 256×2Byte의 512 Byte이다. 이 어드레스 공간에 기록할 데이터에 의해서 논리를 제어하는 명령이나 모드를 선택할 수 있다.
도 2에서는 최하위 어드레스에 영역을 확보했지만, 최상위(3FFFFFh∼3 FFFE0h) 측에 논리 제어 영역을 할당해도 좋다. 탑재할 DRAM으로서 SDRAM을 상정한 경우에는 모드 레지스터 설정 시에 어드레스를 할당하는 영역을 선택할 수 있도록 해도 좋다. 또, 모드 레지스터 설정 시에 논리 제어 영역을 할당하지 않으면, 통상의 64Mbit의 SDRAM으로서 사용할 수도 있다.
도 3은 외부로부터 입력되는 신호가 논리 회로로 전달되는 상태를 설명하기 위한 도면이다.
도 3을 참조하면, 인터페이스부(2)는 제어 신호 /RAS, /CAS, …, /CS, /WE, 어드레스 신호 ADD. 및 데이터 신호 DATA를 받는 버퍼(3)와 버퍼(3)의 출력을 받아 디코드하는 디코딩 회로(5)를 포함하고 있고, 디코딩 회로(5)의 출력에 따라 레지스터(6)는 모드나 명령 등의 정보를 유지하고, 이들 유지된 정보에 따라 논리 회로(8)가 제어된다.
디코딩 회로(5)는 어드레스 신호 ADD와 데이터 신호 DATA를 디코드하지만, 어드레스 신호에 의해서 지정되는 논리 제어 영역에 기록된 데이터를 그대로 레지스터(6)에 보존하는 경우도 있다.
레지스터가 SRAM(Static Random Access Memory) 등으로 구성되어 있는 경우에는 어드레스 신호 ADD에 따라 지정되는 SRAM의 영역에 데이터가 유지되는 경우도 있다. 또, 레지스터(6) 대신에 유지 회로로서 DRAM의 일부 영역을 이용하고, 그 영역에 논리 회로 제어용의 데이터를 유지시켜도 좋다.
즉, 상술한 논리 제어 영역에 할당되는 어드레스 영역 자체가 메모리부(4)에 할당되는 구성으로 할 수도 있다. 또는, 메모리부(4)의 어드레스 공간에 대해서 최상위 비트를 가상적으로 부가하고, 논리 제어 영역에 할당되는 어드레스 영역이 메모리셀 어레이의 어드레스 공간 이외의 가상적인 어드레스 공간의 일부 영역으로 되도록 할 수도 있다.
그러나, 이하의 설명에서는 특히 한정은 되지 않지만, 설명의 편의를 위해 이러한 논리 제어 영역에 할당되는 어드레스는 도 1의 레지스터(6)에 할당되는 것으로 한다.
또, 이하의 설명에서는 설명의 편의를 위해 논리 회로(8)에 있어서의 논리 연산 처리는 특히 한정은 되지 않지만, 암호화 처리인 것으로 한다.
도 1에 도시한 반도체 집적 회로 장치(1)는 이하에 설명하는 바와 같은 3종류의 동작 모드를 갖고, 외부로부터 인가되는 제어 신호의 조합에 의해 그들 동작 모드 중 어느 하나가 선택되는 것으로 한다.
이하의 설명에서 명확한 바와 같이, 반도체 기억 장치(1)가 이하와 같은 동작 모드를 갖는 것에 의해 데이터 캐쉬를 내장하고 있지 않은 조립 시스템, 데이터 캐쉬를 내장하고 있거나 MMU(Memory Management Unit)가 지원되어 가상 어드레스 공간에서 프로그래밍되어 있는 시스템에 맞게 적절한 처리 모드를 선택함으로써, 예컨대, 암호화의 처리 효율을 향상시키는 것이 가능해진다.
도 4는 이러한 반도체 집적 회로 장치(1)의 동작 모드 중 하나인 「통상 모드」의 동작을 설명하기 위한 도면이다.
도 4에서는 통상 모드에 있어서의「기록 액세스」시의 동작을 설명하기 위한 도면이다.
제어 신호의 조합에 따라 암호 모드로 엔트리 중에서 반도체 집적 회로 장치(1)에 대해 기록 액세스한 경우에는 기록 데이터가 암호 처리되고, 그 결과가 자동적으로 기록 시에 지정된 어드레스에 유지된다. 즉, 암호 처리하고자 하는 데이터를 입력하면(①), 논리 회로(8)에 있어서 암호화 처리가 이루어지고(②), 암호 처리 결과가 기록 액세스 시의 어드레스로 전송된다(③).
도 5는 통상 모드에 있어서의 「판독 액세스」시의 동작을 설명하기 위한 도면이다.
제어 신호의 조합에 따라 암호 모드로 엔트리 중에서 반도체 집적 회로 장치(1)에 대해 판독 액세스한 경우에는 액세스한 어드레스의 데이터가 메모리부(4)에서 논리 회로(8)로 전송되고(①), 논리 회로(8)에서 암호화 처리가 이루어지고(②), 암호 처리 결과가 판독 액세스 시의 어드레스와 동일한 어드레스로 전송된다(③).
도 6은 이러한 반도체 집적 회로 장치(1)의 동작 모드 중 다른 하나인 「블럭 모드」의 동작을 설명하기 위한 도면이다.
블럭 모드에 있어서는 암호 모드의 설정 중에 제어 신호나 어드레스 신호 등의 조합에 의해 데이터의 블럭 길이(암호화의 처리 단위)를 설정해 둔다.
그 후, 임의의 어드레스에 더미 기록(또는 더미 판독)함으로써, 처리의 개시 어드레스의 설정을 실행한다. 이 개시 어드레스를 기점으로 해서 설정한 블럭 길이의 데이터가 자동적으로 메모리부(4)에서 논리 회로(8)로 전송되고(①), 암호화 처리를 실행한(②) 후에 자동적으로 처리 결과의 데이터가 기점 어드레스로부터 블럭 길이까지의 어드레스에 다시 라이트백된다(③). 이러한 블럭 길이 분량의 데이터의 전송을 위해 어드레스 카운터 회로(도시하지 않음)가 마련되어 있다. 이 어드레스 카운터 회로는, 예컨대, DRAM에 있어서 셀프 리프레시 동작을 실행할 때의 어드레스 카운터를 공용하는 것이 가능하다.
도 7은 이러한 반도체 집적 회로 장치(1)의 동작 모드 중의 또한 다른 하나인 「버퍼 모드」의 동작을 설명하기 위한 도면이다.
버퍼 모드에서는 암호 모드 설정 중에 암호화 처리의 대상으로 되는 데이터의 블럭 길이를 설정해 둔다. 버퍼 모드에서는 메모리부(4)의 소정 어드레스 영역이 버퍼 어드레스 영역(4b)으로서 확보된다. 이 버퍼 어드레스 영역(4b)에는 복수개의 버퍼 영역이 설정되고, 각각을 구별하기 위해서 버퍼 ID가 할당된다. 따라서, 버퍼 모드에서는 암호화 처리의 대상으로 되는 데이터의 블럭 길이를 설정한 후에, 암호화 처리 결과를 전송할 곳의 버퍼 ID의 설정이 실행된다.
그 후, 처리 어드레스 영역(4a) 중, 어드레스에 대해서 더미 기록(또는 더미 판독)함으로써, 처리의 개시 어드레스의 설정을 실행한다.
이 개시 어드레스를 기점으로 해서 설정한 블럭 길이의 데이터가 자동적으로 메모리부(4)에서 논리 회로(8)로 전송되고(①), 암호화 처리를 실행한(②) 후에 자동적으로 처리 결과의 데이터가 지정된 버퍼 ID의 버퍼 영역으로 전송된다(③).
또한, 메모리부(4)가 복수의 뱅크로 구성되어 있는 경우에는 버퍼 영역을 각 뱅크에 균등하게 할당하고, 처리 어드레스 영역(4a)이 속하는 뱅크와 전송지의 버퍼 영역이 속하는 뱅크를 다른 것으로 하면, 뱅크의 판독과 기록이 충돌하지 않아 효율적으로 처리를 실행하는 것이 가능하다.
도 8은 이상 설명한 바와 같은 3개의 모드의 동작을 설명하기 위한 흐름도이다.
도 8을 참조하면, 처리가 개시되면(단계 S100), 우선 전원 투입 후 암호 처리 기능을 처음으로 사용할 때에는 소프트 리셋에 의해 논리 회로(8)가 리셋된다(단계 S102).
계속해서, 나중에 자세하게 설명하는 바와 같이 암호화 처리를 위한 각종 모드 설정이 실행된다(단계 S104). 예컨대, 비밀키 암호화 방식의 선택이나 상술한 3종류의 암호 처리 모드의 선택, 버퍼 모드이면 버퍼 개수의 지정 등이 실행된다.
또, 비밀키의 입력이 실행된다(단계 S106). 여기서, 예컨대, 트리플 DES(Data Encryption Standard) 방식을 선택하는 경우에는 2종류의 키의 입력이 필요하게 된다.
연쇄가 있는 블럭 암호를 이용하는 경우에는 초기 벡터 IV의 입력을 실행한다(단계 S108).
계속해서, 통상 모드가 선택되어 있는 경우에는 데이터 입력 명령에 의해 데이터 입력이 개시되면(단계 S110), 통상 판독 액세스에서는 암호 블럭 길이까지 데이터의 판독과 암호화 처리가 실행되고(단계 S112), 한편 통상 기록 액세스에서는 암호 블럭 길이까지 데이터 암호화 처리 및 처리 결과의 기록이 실행된다(단계 S114). 즉, 통상 판독, 통상 기록에서는 데이터 입력 명령이 입력되어 데이터를 입력하고 있는 기간에는 암호화 블럭 길이 분량의 복수의 메모리 액세스를 접수하여 순차 논리 회로(8)에서 암호화 처리가 실행된다.
데이터 입력 정지의 명령이 있으면, 데이터 입력이 정지되고(단계 S116), 계속해서 외부로부터 레지스터(6) 내의 플래그 체크가 실행된다(단계 S138). 암호화 처리 중인 것을 나타내는 플래그 FL="1"인 한은 DRAM으로의 액세스는 실행할 수 없고, FL="0"으로 되어야 비로써 DRAM으로의 액세스를 할 수 있게 된다(단계 S140).
한편, 블럭 모드 또는 버퍼 모드가 지정되어 있는 경우에는 단계 S108에 계속해서 블럭 길이의 입력을 실행한다(단계 S120).
계속해서, 블럭 모드의 경우, 데이터 입력 명령이 인가되면(단계 S122), 계속해서 개시 어드레스를 지정하기 위한 더미 판독 또는 더미 기록이 실행되어(단계 S124), 블럭 모드의 처리가 실행된다. 데이터 입력 정지 명령이 입력되면(단계 S126), 계속해서 처리는 단계 S138로 이행한다.
또, 버퍼 모드의 경우, 우선 버퍼 ID의 입력이 실행된다(단계 S130). 데이터 입력 명령이 인가되면(단계 S132), 계속해서 개시 어드레스를 지정하기 위한 더미 판독 또는 더미 기록이 실행되어(단계 S134), 버퍼 모드의 처리가 실행된다. 데이터 입력 정지 명령이 입력되면(단계 S136), 계속해서 처리는 단계 S138로 이행한다.
이상과 같은 처리에 의해, 상기 3종류의 동작 모드를 제어할 수 있게 된다.
이 때, 데이터 입력 개시의 명령이 입력되고 나서 데이터 입력 정지의 명령이 입력될 때까지의 기간은 특수 모드이다. 따라서, 외부에서 DRAM의 메모리 공간으로 액세스하면, 대상 데이터에 대해서 상술한 바와 같은 3종류의 처리 중 어느 하나가 실행되게 된다.
또, 데이터 입력 정지 명령이 입력되어도, 모드의 정보 자체는 레지스터(6) 중에 유지되어 있기 때문에, 재차 외부로부터 데이터 입력 개시의 명령을 입력하면 동일한 처리 모드의 처리를 실행하는 것이 가능하다.
또, 논리 회로(8) 중에서의 암호화 처리 중에 시스템의 메모리 제어기로부터 리프레시 동작을 지시하는 인터럽트가 실행된 경우에는, 이하와 같이 처리를 하면좋다.
논리 회로(8)에서 처리 중에 입력된 리프레시 명령의 회수를 카운트해 두고, 예컨대, 레지스터(6) 내에 유지해 둔다. 논리 회로(8) 중에서의 암호화 처리가 종료되면, 상기 카운트 수만큼 메모리부(4)의 리프레시 처리를 실행한다. 이 리프레시 기간 중에는 논리부(8)의 처리 기간 중과 마찬가지로 DRAM 액세스는 불가능한 기간인 것으로 하여 상기 플래그 FL을 "1"의 상태로 해 둔다. 리프레시 동작의 종료 후에 플래그 FL을 "0"의 상태로 한다.
또, 도 8에 있어서, 데이터 입력 개시 명령 입력 후에는 반도체 집적 회로 장치(1)는 정지 명령이나 소프트 리셋 명령만을 접수한다.
또, 메모리부(4)에는 그의 메모리의 동작 모드, 예컨대, 버스트 길이나 회전대기(latency)를 지정하기 위한 모드 레지스터가 마련되어 있는 것으로 한다. 전원 투입 시에 반도체 집적 회로 장치(1)가 어떠한 상태에서도 정상 동작을 계속할 수 있도록, 소프트 리셋 명령이 인가된 경우뿐만 아니라 메모리부(4)에 모드 레지스터 설정 명령이 인가되었을 때에도 논리 회로(8)의 제어 모드에서 빠져나갈 수 있는 구성으로 되어 있는 것으로 한다.
(암호화 처리의 내용)
계속해서, 논리 회로(8)가 실행하는 암호화 처리에 대해서 간단히 설명한다.
도 9는 논리 회로(8)가 실행할 수 있는 암호 방식의 예를 도시한 도면이다.
도 9를 참조하면, 논리 회로(8)는, 예컨대, 공개키 암호 방식으로서RSA(Rivest-Shamir-Adleman) 암호 처리를 지원하고, 비밀키 암호 방식으로서 DES 방식과 Triple(트리플)-DES 방식을 지원한다.
또, 비밀키 암호 방식에서는 주요한 블럭 암호화 모드인 ECB(Electric Code Book), CBC(Cipher Block Chaining), OFB(Output Feed Back), CFB(Cipher Feed Back)의 각 모드를 지원하고 있다. 논리 회로(8)는 애플리케이션의 적합성을 높이기 위해서 암호화에 있어서 정밀한(critical) 처리가 할당되고 있으며, 그 밖은 반도체 집적 회로 장치(1)를 제어하는 시스템의 마이크로 컴퓨터 측에서 소프트웨어 처리하게 된다. 그리고, 최대의 특징은 범용의 SDRAM과 핀을 겸용할 수 있으면서 암호 제어를 실현할 수 있는 것이다.
예를 들면, 전자 상거래 시장에서는 이상과 같은 암호 방식을 이용한 안전의 확립이 중요하게 된다. 또, 휴대 전화로의 적용이 예상되는 무선 애플리케이션 프로토콜(WAP)에 있어서도 상술한 바와 같은 암호화 방식이 지원되게 된다.
예를 들면, 이러한 네트워크에 있어서의 안전의 처리에 있어서 해시나 데이터 인코딩, 패딩 등의 처리는 시스템의 마이크로 컴퓨터 측에서 담당하게 된다. 이것에 대해서, 반도체 집적 회로 장치(1)가 종래는 소프트웨어 처리로 실행되고 있어 그 처리의 대부분을 차지하고 있었던, 예컨대, RSA에 의한 전자 인증에 있어서 실행되는 연산의 누승 잉여 연산이나 몽고메리 승산 잉여 연산이나 잉여 연산 등을 실행시키는 것이 가능하다. 이 때문에, 반도체 집적 회로 장치가 시스템에 있어서의 정밀한 처리만을 담당함으로써, 애플리케이션 측의 자유도를 높이면서 처리를 고속화할 수 있게 된다.
(비밀키 암호 방식)
상술한 바와 같은 전자 상거래 등에서는 전자 인증은 공개키 방식으로 실행하고, 인증후의 데이터 송수신의 암호화는 비밀키 암호를 이용한 소위 하이브리드 방식이 이용되는 것이 일반적이다.
도 10은 이러한 비밀키 암호 방식으로서 이용되는 DES의 암호화 처리 기본 단위를 도시한 개념도이다.
DES의 키 길이는 56비트이며, 평문의 14비트를 암호문의 14비트로서 출력한다.
이것에 대해서, 도 11과 도 12는 소위 트리플 DES의 처리 방식을 도시한 개념도이다.
트리플 DES는 도 11에 도시하는 바와 같은 112비트의 키 길이의 암호화 방식과, 도 12에 도시하는 바와 같은 168비트의 키 길이의 암호화 방식이다.
도 11에 도시하는 트리플 DES-112에서는 우선 평문의 64비트가 제 1 56비트의 키에 의해 암호화된 후, 제 2 56비트의 키에 의해 복호화된 후에, 다시 제 1 56비트의 키에 의해 암호화되어 64비트의 암호문으로서 출력된다.
이것에 대해서, 도 12에 도시한 트리플 DES-168에서는 64비트의 평문이 우선 제 1 56비트의 키에 의해 암호화되고, 계속해서 제 2 56비트의 키에 의해 복호화된 후, 제 3 56비트의 키에 의해 암호화되어 64비트의 암호문으로서 출력된다.
도 13 내지 도 15는 도 10 내지 도 12에 각각 대응하여 실행되는 복호화 처리를 도시한 개념도이다.
도 13 내지 도 15에 도시하는 바와 같이, DES에 있어서는 암호문에서 평문으로의 복호화 처리도 평문에서 암호문으로의 암호화 처리와 완전히 동일한 알고리듬을 이용하여 실행할 수 있다.
(EBC 모드)
도 16은 EBC 모드에 있어서의 암호화 처리를 설명하기 위한 개념도이며, 도 17은 EBC 모드에 있어서의 복호화 처리를 도시하기 위한 개념도이다.
암호화에 있어서는 통상의 데이터(평문) M을 64비트마다 분해한 블럭 Mi(M=M1·M2·M3…)를 송신자와 수신자만이 공통으로 갖는 비밀키 데이터 K를 이용하여 각 블럭마다 암호화 처리를 실행한다. 이것에 의해, 64비트의 암호문 Ci(C=C1·C2·C3…)가 생성된다.
도 17에 도시하는 바와 같이, 복호화 처리에 있어서는 암호화에 이용한 것과 동일한 키를 이용하여 암호문 Ci를 복호화 처리하는 것에 의해, 평문 Mi(M=M1·M2·M3…)가 생성된다.
(CBC 모드)
이하, 연쇄를 갖는 블럭 모드로서 CBC 모드에 대해서 간단히 설명한다.
CBC 모드에 있어서는 암호화는 평문 M을 64비트마다 분해한 블럭 Mi를 상술한 EBC 모드와 마찬가지로 암호화하고, 또 이 암호문 블럭 Ci와 다음의 평문 블럭 Mi+1의 배타적 논리합을 다음의 암호화의 입력으로 한다. 이것을 반복하여 차례차례 연쇄시키는 것에 의해 더욱 더 해독이 곤란한 암호로 할 수 있다.
한편, 복호화는 암호 블럭문 Ci를 EBC 모드와 마찬가지로 복호화한 결과를 Mi로 하고, Ci를 다음의 암호문 블럭 Ci+1의 복호화 결과와의 배타적 논리합을 출력 평문 블럭 Mi+ 1로서 생성한다. 이것을 반복하여 차례차례 연쇄시키는 것에 의해 복호화를 실행할 수 있다.
평문을 Mi, 암호문을 Ci(i=1, 2, …)로 하고, 암호키 K를 이용한 암호화를 Ek로 나타내고, 복호화를 Dk로 나타내면, CBC 모드는 이하에 나타내는 바와 같은 논리식에 의해 실행할 수 있다.
C1=Ek(M1+IV)
Ci=Ek(Mi+Ci-1) (i:2, 3, …)
M1=Dk(C1)+M1
Mi=Dk(Ci)+Ci-1 (i:2, 3, …)
여기서, IV는 초기값이며, 최초의 암호화와 복호화 시에 이용된다. 또, 기호 「+」는 배타적 논리합 연산을 의미하는 것으로 한다. 또, 함수 Ek(…)는 암호화를, 함수 Dk(…)는 복호화를 나타내는 것으로 한다.
초기값(초기 벡터) IV는 암호화 측과 복호화 측에서 동일한 값을 이용한다. 초기값 IV의 값은 제 3 자에게 알려져도 좋으므로, 초기값 IV는 송신자와 수신자 사이에서 비밀로 보낼 필요는 없다. 이 때, 초기값 IV의 값을 변경하면 동일한 메시지나 다른 암호문이 생성된다.
도 18은 상술한 바와 같은 CBC 모드에서의 암호화 처리를 설명하기 위한 개념도이다.
초기값 IV와 평문 블럭 M1의 배타적 논리합에 따라 암호화를 실행함으로써 암호화 블럭 C1이 생성되고, 이하 순차 이 처리가 연쇄해서 실행된다.
단, 반도체 집적 회로 장치(1)에 한번에 입력 가능한 평문길이는 레지스터(6)의 크기에 의해 결정된다.
따라서, 이 레지스터(6)의 크기보다 긴 평문을 처리하는 경우에는 직전의 암호문 블럭(도 18에 있어서의 Ci)이 초기값으로 되도록 하여 다음 평문의 암호화가 실행된다.
도 19는 도 18과 같이 하여 암호화 처리된 암호문을 복호화하기 위한 처리를 도시한 개념도이다.
기본적으로는, 도 18의 처리를 반대로 실행하게 된다. 또, 레지스터(6)의 크기보다 암호문 C가 긴 경우에는 이 크기를 초과한 시점에서 초기값을 직전의 암호문 블럭 Ci로서 처리를 연쇄시킨다.
도 20은 이상과 같은 각종 암호화 모드가 존재하는 경우에 도 8에서 설명한 처리를 설명하기 위한 타이밍 도이다.
도 20에서 특징적인 것으로는 레지스터(6)로의 액세스에 있어서 통상의 DRAM과 다른 점은 메모리부(4)의 모드 레지스터 설정에 의존하지 않고 버스 길이가 항상 1로서 처리되는 것이다.
그 밖의 점에 관해서는 DRAM과 동일한 타이밍 및 동일한 순서로 레지스터에 대해 액세스할 수 있다.
도 20에 도시한 예에서는 제어 레지스터(6)로 액세스하기 위한 어드레스 공간이 X=h3FFF인 경우를 나타내고 있다.
이렇게 하여, 액세스할 어드레스가 지정된 후, 우선 소프트 리셋이 실행된다. 계속해서, 제 1 모드 설정으로서 비밀키 방식으로서, 예컨대, DES-56을 선택할 것인지, CBC 모드를 선택할 것인지에 대한 설정이 실행된다.
계속해서, 제 2 모드 설정으로서 암호화 처리 모드라는 설정 또는 레지스터의 어드레스 카운터 리셋이나 초기값의 로드 등을 실행할 것인지 여부의 지정이 실행된다.
또 계속해서, 비밀키 Key1의 입력이 실행되고, 초기값 IV의 입력이 실행된다.
이것에 계속해서, 8바이트 단위의 평문 데이터의 입력이 실행되고, 데이터 입력이 끝나면 파일 종료 신호 EOF의 입력이 실행된다. 계속해서, 플래그의 체크를 실행하고, 논리 회로(8)가 처리 중인지 여부의 체크가 실행된다.
(통상 모드 동작의 상세)
도 21은 통상 모드의 기록 액세스에 있어서 동일 페이지에 데이터가 기록되는 경우의 동작을 설명하기 위한 도면이다.
도 21에 있어서, 외부 클럭 신호 Ext.CLK는, 예컨대, 100㎒인 것으로 한다.
따라서, 메모리부(4)를 동작시키기 위한 내부 클럭 clkM은 이 외부 클럭 신호 Ext. CLK와 동기해서 100㎒이다.
한편, 논리 회로(8)로 공급되는 클럭 신호 clkL은 내부 클럭 발생 회로(7)에서 외부 클럭 신호 Ext.CLK를 2분주하여 발생한다.
따라서, 내부 클럭 신호 clkL의 주파수는, 예컨대, 50㎒인 것으로 한다.
도 21은, 통상 기록에 있어서, 연속하는 기록 명령 WT가 동일 페이지 상의 어드레스에 대해서 발행된 경우를 나타낸 것이다.
도 21에 있어서, 신호 Ext.DQ[15:0]은 워드(語) 구성 ×16의 데이터이고, 메모리부(4)에 대한 데이터 입출력 단자(14)에 대해서 인가되는 데이터이다.
또, 신호 Smbus[15:0]은 도 1에 도시한 바와 같이, 메모리부(4)와 논리 회로(8)를 접속하는 내부 메모리 데이터 버스 상의 데이터이다.
또, 신호 SifL[15:0]은 내부 버스 mbus에 데이터를 입출력 또는 논리 회로(8)에 대해서 데이터의 입출력을 실행하기 위한 내부 인터페이스(9) 및 레지스터(6)에서의 데이터를 나타낸다.
즉, 레지스터(6) 및 내부 인터페이스(9)에 의해 데이터 입출력 단자(14)로부터 인가되는 16비트마다의 데이터는 64비트의 데이터로 직렬/병렬 변환하여 논리 회로(8)에 인가되고, 논리 회로(8)로부터 출력되는 암호화 처리 후의 데이터는 병렬/직렬 변환된 후에 16비트마다의 데이터로서 DRAM(4)에 인가된다.
신호 RdL은 논리 회로(8)가 처리를 개시하고 처리 기간 중인 것을 나타내는 신호이며, 이 신호가 "H" 레벨인 기간 중에는 논리 회로(8)가 동작하고 있는 것을 나타낸다.
도 21을 참조하면, 외부로부터 데이터 입출력 단자(14)를 거쳐서 인가되는데이터는 연속해서 4회분 기록할 필요가 있다. 이것은 암호 처리가 64비트 단위로 실행되기 때문이다. 예컨대, 버스트 길이가 4인 경우, 기록 명령 WT가 반도체 집적 회로 장치(1)에 인가되면, 연속한 16비트마다의 데이터 Da0∼Da3이 데이터 입출력 단자(14)로부터 인가된다. 이 데이터는 내부 버스 mbus를 거쳐서 내부 인터페이스(9) 및 레지스터(6)에 인가되고, 64비트 분량의 데이터가 레지스터(6)에 축적된 후에 암호 처리를 위한 데이터 DA로 되어 논리 회로부(8)에 인가된다.
이것과 동시에, 신호 RdL이 "H"레벨로 되어 논리 회로(8)가 동작을 개시한다.
논리 회로(8)의 암호 처리의 결과의 데이터 DA'가 레지스터(6)로 출력되면, 신호 RdL은 "L" 레벨로 되어 논리 회로(8)의 동작이 정지한다.
레지스터(6)로 출력된 데이터 DA'는 병렬/직렬 변환되어 내부 인터페이스(9)에서 내부 버스 mbus로 16비트마다의 데이터 Da'0∼Da'3으로서 출력되어 메모리부(4)에 기록된다.
다음에, 인가된 기록 명령 WT는 최초의 기록 명령으로부터 2tCLK·n+ 8tCLK 이상 간격을 두고 입력될 필요가 있다. 여기서, n은 64비트의 데이터를 암호화 처리하기 위해서 필요한 내부 클럭 신호 clkL의 사이클 수이다.
도 22는, 통상 모드에 있어서, 다른 페이지의 64비트 데이터를 기록해 가는 경우의 동작을 설명하기 위한 타이밍 도이다.
이 경우에는 기록 명령으로서 자동 프리차지에 의한 기록 명령이 인가된다. 이 경우, 프리차지 동작은 암호 처리된 데이터가 메모리부(4)(DRAM)에 기록되고 나서 자동적으로 프리차징 되게 된다.
프리차지 동작이 종료된 후에는 다시 액트 명령 ACT가 인가된 후에 마찬가지 처리가 반복된다.
여기서, 자동 프리차지에 의한 기록 명령이 아니라 단순한 프리차지 명령이 반도체 집적 회로 장치(1)에 입력된 경우에는 이하와 같은 처리를 실행하는 것으로 한다.
즉, 암호 처리된 데이터가 메모리부(4)에 기록되기 전에 프리차지 명령 PRE가 입력된 경우에는 기록 동작이 종료하고 나서 자동적으로 프리차지를 개시하는 것으로 한다.
한편, 이미 기록이 끝난 경우에는 즉시 프리차지 동작을 개시하는 것으로 한다.
도 23은, 통상 모드에 있어서, 동일 페이지에 대해서 판독 액세스가 실행된 경우의 동작을 설명하기 위한 타이밍 도이다.
도 23에 있어서도 외부 클럭 신호 Ext.CLK는, 예컨대, 100㎒인 것으로 한다.
따라서, 메모리부(4)에 인가되는 내부 클럭 신호 clkM도 100㎒이며, 논리 회로(8)에 인가되는 클럭 신호 clkL은 50㎒인 것으로 한다.
도 23을 참조하면, 판독 명령 RD가 인가되면, 메모리부(4)로부터의 판독 데이터가 내부 데이터 버스 mbus에 대해서 연속적으로 16비트마다의 데이터 Da0∼Da3으로서 출력된다.
내부 인터페이스(9) 및 레지스터(6)에 의해 64비트의 데이터 DA로 직렬/병렬변환이 실행된다.
이 데이터 DA가 논리 회로(8)에서 암호화 처리된다. 암호화 처리 후의 데이터 DA'가 레지스터(6) 및 내부 인터페이스(9)를 거쳐서 내부 데이터 버스 mbus로 16비트마다의 데이터 Da'0∼Da'3으로서 병렬/직렬 변환된 후에 출력된다. 이 병렬/직렬 변환된 데이터 Da'0∼Da'3이 메모리부(4)에 대해서 기록된다.
최초의 판독 명령 RD가 인가되고 나서 다음의 판독 명령 RD가 인가될 때까지의 기간도 기록 동작과 마찬가지로 2tCLK·n+8tCLK 이상 간격을 두고 입력될 필요가 있다.
도 24는 도 23과 마찬가지 조건에 있어서 다른 페이지에 대해서 판독 액세스된 경우의 동작을 설명하기 위한 도면이다.
이 경우, 도 22에 도시한 기록 동작의 경우와 마찬가지로 암호화 처리가 종료된 데이터가 메모리부(4)에 기록되고 나서 자동적인 프리차지가 실행되는 것으로 한다.
도 25는 외부 클럭 신호 Ext.CLK가 50㎒인 경우의 반도체 집적 회로 장치(1)의 동작을 설명하기 위한 타이밍 도이다.
도 25에서는, 통상 모드에 있어서, 동일 페이지의 어드레스에 대해서 기록 액세스가 실행되는 경우를 도시한다.
이 경우, 내부 클럭 발생 회로(7)에서 생성되는 메모리부(4)에 대한 내부 클럭 신호 clkM은 외부 클럭 신호 Ext.CLK를 승산(multiplication)하여 100㎒로 변환되어 있는 것으로 한다.
한편, 논리 회로(8)에 대해서 인가되는 내부 클럭 신호 clkL에 대해서는 외부 클럭 신호와 동기하여 50㎒인 것으로 한다.
도 25의 동작에 있어서는 외부로부터의 기록 명령 WT 등은 외부 클럭 주파수에 일치시켜 50㎒의 주기로 입력되지만, 메모리부(4)로부터의 판독 동작이나 암호 처리 결과를 메모리부(4)에 기록하는 동작은 내부 클럭 신호 clkM과 동기하여 100㎒로 처리된다.
이 경우에는 최초의 기록 명령 WT로부터 다음의 기록 명령 WT까지는 tCLK·n+8tCLK만큼의 기간을 비워 두는 것이 필요하게 된다.
도 26은, 외부 클럭 신호 Ext.CLK가 50㎒인 경우에 있어서, 통상 모드 시에 다른 페이지에 기록 액세스가 실행되었을 때의 동작을 설명하기 위한 타이밍 도이다.
이 경우에도 기록 명령으로서는 자동 프리차지에 의한 기록 명령이 인가되는 것으로 한다.
따라서, 논리 회로(8)에서 암호 처리가 실행된 후의 데이터 DA'가 병렬/직렬 변환되어 16비트마다의 데이터 DA'0∼DA'3으로서 메모리부(4)에 기록된 후에 프리차지 동작이 실행된다.
1회 째의 기록 명령 WT가 인가되고 나서 다음의 기록 명령 WT가 인가될 때까지의 시간은 tCLK·n+8tCLK만큼의 기간을 비워 두는 것이 필요하다.
도 27은 도 25 및 도 26과 동일한 외부 클럭 신호 Ext.CLK 및 내부 클럭 신호 clkM 및 clkL의 조건에 있어서, 통상 모드인 경우에 동일 페이지로의 판독 액세스가 실행되었을 때의 동작을 설명하기 위한 도면이다.
또, 도 28은 도 27과 동일한 조건에 있어서, 통상 모드에서 다른 페이지에 판독 액세스가 실행된 경우의 동작을 설명하기 위한 타이밍 도이다.
도 27 및 도 28에 있어서도 명령 등이 인가되는 것이 외부 클럭 신호 Ext. CLK와 동기하여 실행되는 것을 제외하고는 원칙적으로 도 23 및 도 24에서 설명한 것과 마찬가지 동작이 실행된다.
단, 도 27에서는 1회 째의 판독 명령 RD가 인가되고 나서 다음의 판독 명령 RD가 인가될 때까지의 시간은 tCLK·n+4tCLK만큼 비워 두는 것이 필요하고, 도 28에서는 tCLK·n+6tCLK만큼의 시간을 비워 두는 것이 필요하다.
도 29는 외부 클럭 신호 Ext.CLK가 25㎒이고 내부 클럭 발생 회로(7)에서 승산 동작이 실행된 결과, 메모리부(4)에 대해서 인가되는 내부 클럭 신호 clkM이 100㎒로, 논리 회로(8)에 인가되는 내부 클럭 신호 clkL이 50㎒로 각각 변환된 경우의 동작을 설명하기 위한 타이밍 도이다.
외부로부터의 명령은 외부 클럭 신호 Ext.CLK와 동기하여 실행되지만, 내부의 동작은 외부 클럭 신호와 동기하여 실행된다.
도 29에서는 통상 모드인 경우에 동일 페이지에 기록 액세스가 실행된 경우의 동작을 도시한다.
이 경우, 1회 째의 기록 명령 WT가 인가되고 나서 다음의 기록 명령이 인가될 때까지는 시간 tCLK·n/2+4tCLK만큼의 시간을 비우는 것이 필요하다.
도 30은 도 29와 동일한 클럭 신호의 조건에서, 통상 모드인 경우에 동일 페이지에 판독 액세스를 실행했을 때의 동작을 설명하기 위한 타이밍 도이다.
한편, 도 31은 도 30과 동일한 클럭 신호의 조건에서, 통상 모드인 경우에 다른 페이지에 판독 액세스가 실행된 경우의 동작을 설명하기 위한 타이밍 도이다.
도 30의 경우에는 1회 째의 판독 명령 RD로부터 다음의 판독 명령 RD까지의 사이는 tCLK·n/2+2tCLK만큼의 시간을 비워 두는 것이 필요한데 비해, 도 31에 있어서는 tCLK·n/2+3.5tCLK만큼의 시간을 비워 두는 것이 필요하다.
이상 설명한 통상 모드의 동작의 경우, 동일 페이지로의 액세스인 경우에는 판독 동작 및 기록 동작의 경우의 쌍방에 있어서 암호 처리가 종료(암호 처리 결과를 메모리부(4)에 기록하는 동작을 포함한다)한 경우에는 프리차지 명령을 입력하고 나서 정지 명령을 입력할 필요가 있다. 암호 종료를 확인하고 나서 정지 명령을 입력하고 있는 경우로서, 또한 암호 처리 중에 리프레시의 인터럽트가 없는 경우에는, 도 8에서 설명한 처리에 있어서, 플래그 FL의 확인을 실행하는 것은 불필요하다.
페이지 오픈 상태로 정지 명령이 입력된 경우에는 암호 종료(암호 처리 결과를 메모리부(4)에 기록하는 동작을 포함함) 후에 자동적으로 프리차지한다. 이 경우에는 플래그의 확인이 필요하다.
어느 경우든지 암호 종료 시점에 플래그를 "0"으로 하는 것에 의해 외부에 암호 처리의 완료를 알리는 것으로 하고 있다.
또한, 암호 처리 중이나 암호 처리 결과를 메모리부(4)에 기록하는 도중에 인터럽트가 있어 리프레시 명령이 인가된 경우에는 명령을 접수하고, 접수한 리프레시 명령의 회수를 카운트해 둔다. 즉, 별개로 카운터를 배치해 둔다. 그리고, 암호 처리의 동작이 종료하고 나서 또는 암호 처리 결과를 메모리부(4)에 기록하는 동작이 종료하고 나서 카운트된 분량만큼 리프레시 명령을 내부에서 적당한 사이클 기간마다 메모리부(4)에 대해서 인가하는 것으로 한다.
이 때 메모리부(4)에서의 리프레시 카운터를 디크리먼트하면서 0으로 될 때까지 리프레시 동작을 실행하면 좋다.
통상은 자동 리프레시 명령이 인가되거나 또는 메모리부(4)가 EDO 모드의 DRAM인 경우에는 CBR 명령의 리프레시가 실행되게 된다. 따라서, 리프레시되는 어드레스는 별도의 리프레시 어드레스 카운터에서 발생되는 어드레스이다. 그리고, 이 리프레시 동작이 완료되고 나서 암호 처리를 완료한 것으로 하고, 도 8에서 설명한 플래그 FL을 "1"에서 "0"으로 변경하는 것으로 한다.
또한, 블럭 모드나 버퍼 모드인 경우에도 상술한 바와 같은 통상 모드의 경우와 기본적으로는 그 동작은 마찬가지이다.
다른 점은 연속한 데이터 입력이 개시 어드레스를 기준으로 하여 반도체 집적 회로 장치(1) 내에서 자동적으로 생성되고 있는 점뿐이다.
또, 메모리부(4)가 복수의 뱅크를 포함하고 있는 경우에 있어서, 버퍼 모드에서는 판독하고 있는 뱅크와는 다른 뱅크에 할당된 버퍼 ID가 선택되고 있고, 이 버퍼 영역에 암호 처리 결과가 기록된다.
개시 어드레스의 입력이라는 것은, 예컨대, 통상의 SDRAM 액세스와 같이 ACT 명령을 입력할 때에 행어드레스를 지정하고, 다음에 더미 판독 또는 더미 기록을실행할 때에 열어드레스를 입력하는 것에 의해 지정하는 것을 가리킨다.
여기서, 버스트 길이가 1 이상이어도 개시 명령의 입력은 최초의 더미 열 액세스에서 입력한 어드레스로 된다.
블럭 모드와 버퍼 모드에서는 암호 처리 결과가 완전히 메모리부(4)에 저장되어 암호 처리가 종료된 후에 활성이었던 뱅크가 자동적으로 프리차지된다.
여기서, 암호 처리 중에 입력된 프리차지 명령이나 자동 프리차지 명령은 무시되게 된다.
또, 블럭 모드나 버퍼 모드에서는 개시 어드레스가 한번 인가되면, 그 후 열 액세스 동작이 외부로부터 인가되어도 무시된다.
또, 블럭 모드와 버퍼 모드에서는 개시 어드레스로부터 블럭 길이까지 자동적으로 암호화 처리가 실행된다. 이 때, 블럭 길이만큼 인크리먼트한다고 하는 처리뿐만 아니라 디크리먼트하는 처리도 레지스터(6)로의 데이터 설정에 의해 할 수 있다.
또, SDRAM에서의 순차 모드뿐만 아니라 인터리브 모드와 같은 데이터 기록도 할 수 있다.
(실시예 2)
도 32는 본 발명의 반도체 집적 회로 장치(1)와 마이크로 컴퓨터(90)가 접속되는 상태를 도시한 개념도이다.
마이크로 컴퓨터(90)는 CPU 코어(94), 메모리 제어기(98) 및 외부 버스 인터페이스 회로(100)가 포함되어 있고, 이들은 내부 버스(102)에 의해서 접속되어 있다. 또, CPU 코어(94)는 직렬 인터페이스(104)를 거쳐서 암호의 대상 데이터가 저장되어 있는 플래시 메모리(106)와 접속되어 있는 것으로 한다.
외부 버스 인터페이스 회로(100)는 CPU 코어(94)로부터의 지령에 따라 반도체 집적 회로 장치(1)에 대해서 제어 신호, 어드레스 신호 및 데이터를 출력한다.
도 32는 통상 모드 동작에 적합한 시스템을 도시하고 있다.
즉, 통상 모드에서는 암호 처리의 대상 데이터가 반도체 집적 회로 장치(1)의 메모리부(4) 이외의 외부 장치, 예컨대, 플래시 메모리(106)에서 마이크로 컴퓨터(90)로 인가되는 것과 같은 시스템에 적합하다.
마이크로 컴퓨터(90)를 거쳐서 메모리부(4)에 대해서 데이터를 일시적으로 유지한 경우, 자동적으로 암호 처리 결과로 변환되어 메모리부(4)에는 유지되어 있게 된다. 따라서, 암호 처리에 필요한 메모리부(4)로의 액세스 회수를 삭감할 수 있다.
도 33은 본 발명의 반도체 집적 회로 장치(1)와 마이크로 컴퓨터(90)가 접속되는 다른 상태를 도시한 도면이다.
마이크로 컴퓨터(90)에는 CPU 코어(94), 캐쉬 메모리(96), 메모리 제어기(98) 및 외부 버스 인터페이스 회로(100)가 포함되어 있고, 이들은 내부 버스(102)에 의해서 접속되어 있다. 외부 버스 인터페이스 회로(100)는 CPU 코어(94)로부터의 지령에 따라 반도체 집적 회로 장치(1)에 대해서 제어 신호, 어드레스 신호 및 데이터를 출력한다. 따라서, 외부 버스 인터페이스 회로(100)와논리 내장 DRAM은 제어 신호 /RAS, /CAS, …, /CS 등의 제어 신호를 전달하는 제어 신호 버스, 어드레스 신호 ADD.를 전달하는 어드레스 버스 및 데이터 DATA를 전달하는 데이터 버스에 의해서 접속되어 있다.
이러한 시스템에 있어서, 반도체 집적 회로 장치(1)를 제어하기 위해서는 마이크로 컴퓨터(90) 상에서 작동하는 소프트웨어에서 유의해야 하는 사항이 있다.
도 34는 반도체 집적 회로 장치(1)의 제어를 설명하기 위한 흐름도이다.
도 34를 참조하면, 우선 최초에 단계 S1에 있어서 논리 제어 영역으로 되는 어드레스를 예약 영역에 지정한다. 즉, 논리 회로에 대한 명령 제어용의 어드레스 공간상에 프로그램이 할당되지 않도록 한다. 할당하지 않는 방법으로서는, 예컨대, 0S(오퍼레이션 시스템)의 기능을 이용하여 논리 제어 영역을 예약 영역으로 하는 방법이 있다.
메모리 관리, 인터럽트 관리, 프로세스간 통신과 같은 시스템의 기본적인 제어를 실행하는 0S에서의 중핵 부분인 커널(kernel) 자체가 논리 제어 영역에 할당되지 않도록, 0S의 상승 시점에도 주의가 필요하다. 따라서, 커널 자체가 논리 제어 영역에 할당되지 않도록 주의하여 예약 영역을 OS 측에서 지정해 둔다.
다음에, 단계 S2에 있어서, 도 33에 도시한 바와 같은 데이터 캐쉬가 있는 시스템에서는 적어도 논리 제어 영역 및 암호화 처리될 데이터가 저장되는 영역을 캐쉬 불가능 영역(4a)으로 지정한다.
즉, 예컨대, 도 33에 있어서의 CPU 코어(94)로부터 반도체 집적 회로 장치(1)에 대해서 소정의 어드레스 공간을 지정하여 명령에 상당하는 데이터를 내부 버스(102)로 보낸 경우라도 캐쉬 메모리(96)가 동작하면 그 명령에 상당하는 데이터는 캐쉬 메모리(96)에 기록되어 반도체 집적 회로 장치(1)로는 전달되지 않는 경우가 있을 수 있다. 그러면, 반도체 집적 회로 장치(1)에 탑재되어 있는 논리 회로(8)는 그 명령에 따라 동작할 수 없게 된다. 따라서, 논리 제어 영역이 캐쉬되지 않도록 설정할 필요가 있다. 암호화 처리될 데이터가 저장되는 영역에 대해서도 마찬가지이다. 대개의 마이크로 컴퓨터에서는 일부의 어드레스 공간을 캐쉬 불가능 영역으로 지정하도록 제어할 수 있다.
또, 메모리 관리 유닛 기능을 갖고 있는 경우에는 가상 어드레스 공간이 논리 제어 영역에서 이용되지 않도록 설정한다.
이와 같이, 캐쉬 메모리가 있는 시스템에서는 시스템의 초기 설정에 있어서, 반도체 집적 회로 장치(1)의 적어도 논리 제어 영역에 대해서는 캐쉬 메모리를 사용하지 않도록 하여 반드시 액세스되도록 한다.
다음에, 단계 S3에 있어서, 할당한 영역에 통상 기록하는 것에 의해서, 논리 제어를 위한 명령을 입력하고, 단계 S4에 있어서, 통상 판독에 의해 논리의 처리 상황의 체크나 처리 결과의 판독을 실행할 수 있다. 또, 단계 S5에 있어서, 처리가 아직 종료되지 않았으면 단계 S3, S4를 반복하게 된다. 구체적으로는, 예컨대, 어드레스 Y=0h의 비트 D1에 기록되어 있는 플래그를 체크함으로써 처리 상황을 판단할 수 있다. 이 플래그 FL을 체크하여 처리의 완료를 확인하고 나서 마이크로 컴퓨터는 연산 결과를 액세스하는 등 다음의 동작을 시작할 수 있다.
따라서, 본 발명에 따르면 종래에는 처리의 종료를 전용핀에 의해 수신기 측으로 전달하고 있었던 데 대해, SDRAM에 통상 판독을 실행함으로써 플래그 상태를 체크할 수 있게 된다.
도 35는 반도체 집적 회로 장치(1)의 블럭 모드를 적용하는 데 적합한 시스템의 일 예를 도시한 도면이다.
즉, 블럭 모드는 암호 처리의 대상 데이터가 반도체 집적 회로 장치의 메모리부(4)(메인 메모리)에 미리 유지되는 시스템에 적합하다.
메인 메모리 내의 데이터를 외부 버스로 출력하지 않고 암호 처리를 실행할 수 있으므로, 고속화와 저소비 전력화를 양립시키는 것이 가능해진다.
도 36은 블럭 모드에서 동작하는 반도체 집적 회로 장치(1)를 캐쉬 메모리(96)가 존재하는 시스템에 적용하는 경우의 구성을 도시한 개념도이다.
이 경우, 암호 처리 영역을 적어도 캐쉬 불가능 영역(4a)으로 지정한다.
가상 메모리 어드레스 공간을 이용하는 경우에는 암호 대상의 데이터 블럭 전체가 동일 페이지 내에 수납되어 있을 필요가 있다.
단, 지정 어드레스가 포함되는 라인만의 플래시를 하는 기능이 있는 마이크로 컴퓨터에서는 특정 영역을 캐쉬 불가능 영역으로 할 필요는 없다.
또, 데이터 캐쉬가 존재하는 것에 의해 라이트백을 실행하는 경우의 방식을 설명한다.
암호 모드로 들어가기 전에, 암호 처리하고자 하는 데이터가 캐쉬에 존재하는 경우에는 클리어하여 플래시를 실행한다. 즉, 라이트백하여 태그를 무효로 한다. 암호 모드로 들어가 개시 어드레스가 입력된다. 개시 어드레스를 포함하는캐쉬 라인이 데이터 캐쉬 내에 할당되므로, 즉시 플래시하는 것이 필요하게 된다.
여기서, 「플래시」라는 것은 라이트백하지 않고 무효로만 하는 것을 의미한다.
도 37은 반도체 집적 회로 장치(1)의 버퍼 모드를 이용할 때에 적합한 시스템의 구성을 도시한 개략 블럭도이다.
버퍼 모드의 경우에는 버퍼 영역은 캐쉬 불가능 영역(4a)에 존재하고 있을 필요가 있다.
한편, 암호 처리 전의 데이터 자체는 캐쉬 가능 영역(4b)에 저장되어 있었으므로 상관없다.
가상 메모리 어드레스 공간을 이용하는 경우에는 암호 대상인 데이터 블럭 전체가 동일 페이지 내에 수납되어 있을 필요가 있다.
이상과 같이, 본 발명에 따른 반도체 집적 회로 장치(1)를 이용하면, 여러 가지 시스템에 적합하게 하여 소비 전력이 적고 또한 암호 처리를 고속으로 실행할 수 있게 된다.
또, 버퍼 모드에 있어서 데이터 캐쉬가 존재하는 것에 의해 라이트백 방식인 경우를 설명한다.
암호 모드로 들어가기 전에 암호 처리하고자 하는 데이터가 캐쉬에 있으면 클리어하여 플래시한다. 즉 라이트백하여 태그를 무효로 한다. 암호 처리 결과가 캐쉬 불가능 영역(4a)으로 설정된 버퍼 영역에 저장되게 된다. 버퍼 모드에서는 버퍼 ID에 의해 처리 결과가 저장될 곳을 지정했지만, 캐쉬 불가능 영역(4a)의 저장지를 어드레스에 의해 지정한다는 방식을 취해도 좋다.
(실시예 3)
도 38은 실시예 1의 반도체 집적 회로 장치(1)의 구성을 변형한 실시예 3의 논리 내장 DRAM(30)의 구성을 도시한 블럭도이다.
도 38을 참조하면, 논리 내장 DRAM(30)은 SDRAM부(32)와 논리부(34)를 포함한다.
SDRAM부(32)는 외부로부터의 신호를 받아 그것에 따른 제어 신호를 출력하는 인터페이스부(36)와 인터페이스부(36)로부터의 출력에 따라 데이터의 유지를 실행하는 DRAM 코어(38)를 포함한다. 인터페이스부(36)는 제어 신호 /CS, /RAS, /CAS, /WE 및 DQM을 받는 제어 신호 입력 회로(40), 클럭 신호 CLK 및 클럭 인에이블 신호 CKE를 받아 내부 클럭을 발생하는 클럭 버퍼(44), 클럭 버퍼(44)의 출력과 동기하여 어드레스 신호 A0∼An을 캐치(catch)하는 어드레스 버퍼(46), 내부 클럭과 동기하여 데이터 신호 DQ0∼DQn의 입출력을 실행하는 입출력 회로(52)를 포함한다. 또한, 클럭 버퍼(44)는 실시예 1과 마찬가지로 내부 클럭 생성 회로(7)를 포함하는 구성이어도 좋다.
또한, 인터페이스부(36)는 제어 신호 입력 회로(40)의 출력에 따라 명령 신호 ACT, PRE 등을 출력하는 제어 회로(42)와 제어 회로(42)의 출력에 따라 어드레스 버퍼(46)의 출력을 S어드레스, Y어드레스로서 다중화하는 멀티플렉서(48)를 포함한다.
멀티플렉서(48)는 모드 레지스터 설정 MRS 명령에 따라 어드레스 신호 A0∼Am 중 어느 하나의 신호 비트에 따라 설정 가능한 모드 레지스터(50)를 포함하고 있다.
DRAM 코어(38)는 행렬 형상으로 메모리셀이 배치되는 메모리셀 어레이(54), 멀티플렉서(48)로부터 인가되는 행어드레스에 따라 메모리셀 어레이(54)의 행 선택을 실행하는 행디코더(56), 멀티플렉서(48)로부터 인가되는 열어드레스에 따라 메모리셀 어레이(54)의 열 선택을 실행하는 행디코더(56), 선택된 메모리셀로부터 데이터를 판독하고, 또한 선택된 메모리셀에 대해서 데이터의 기록을 실행하는 센스 앰프 드라이버/기록 드라이버(60)를 포함한다.
논리부(34)는 암호 연산 논리(74)와 인터페이스부(36)의 출력에 따라 암호 연산 논리(74)를 제어하기 위한 모드 정보나 암호 연산 논리에 입력할 데이터 및 암호 연산 논리의 연산 결과를 유지하는 레지스터부(72)를 포함한다.
레지스터부(72)는 어드레스 신호 A0∼Am에 의해서 지정되는 영역이 소정값인 경우에 활성화되고, 입출력 회로(52)를 거쳐서 외부로부터 입력되는 데이터 신호를 캐치하기 위한 선택기(76), 선택기(76)를 거쳐서 외부로부터 인가된 데이터를 기록하는 제어 레지스터(78), 모드 레지스터(80) 및 데이터 레지스터(84), 암호 연산 논리로부터 출력되는 데이터를 유지하고 그 유지 데이터를 선택기(76), 입출력 회로(52)를 거쳐서 외부로 데이터 신호 DQ0∼DQn으로서 판독하기 위한 상태 레지스터(82), 데이터 레지스터(86)를 포함한다.
도 39는 실시예 3의 논리 내장 DRAM(30)에 적용되는 시스템의 메모리 맵을도시한 도면이다.
도 39를 참조하면, 시스템 메모리 맵 중의 외부 RAM 영역이 논리 내장 DRAM에 대응한다. 논리 내장 DRAM은 그 영역이 논리 제어 영역과 DRAM 영역으로 분할되어 있고, 논리 제어 영역으로의 액세스에 의해서 내장할 암호 논리를 제어한다. 이 논리 제어 영역에 대응하는 시스템 메모리 맵 상의 영역은 시스템 예약 영역으로 하고, CPU의 캐쉬 및 MMU(메모리 관리 유닛)를 사용하는 경우에는 캐쉬 불가능 영역으로 해 둔다. 또, 오퍼레이팅 시스템이 이 영역에 로딩되지 않도록, 미리 시스템의 펌웨어로 제어한다. 또, 애플리케이션 프로그램도 이 영역을 사용 금지로 한다.
이 논리 제어 영역은, 예컨대, DRAM의 행어드레스 X=3FFFh, 열어드레스 Y=0H∼FFh에 할당한다.
도 38의 제어 레지스터(78)는, 예컨대, X=3FFFh, Y=00h에 할당된다. 모드 레지스터(80)는 H=3FFFh, Y=01h에 할당된다. 상태 레지스터(82)는 어드레스 X=3FFFh, Y=02h에 할당된다. 제 1 데이터 레지스터(84)는 어드레스 X=3FFFh, Y=03h에 할당되고, 제 2 데이터 레지스터(86)는 어드레스 X=3FFFh, Y=04h에 할당된다.
도 38의 암호 연산 논리(74)는 네트워크 상의 안전 확보를 위해 사용되고 있는 주요한 암호 방식의 가속 장치(accelerator)를 내장하고 있다. 이 암호 연산 논리(74)는 전자 인증에서 이용되는 공개키 방식과 인증 후의 데이터 송수신에서 이용되는 비밀키 암호 방식의 기능을 지원하고 있다. 암호 전용의 논리 회로에서처리하므로, 처리를 범용의 CPU에 의해 처리하는 것보다 저소비 전력으로 고속 처리를 실행할 수 있어, 예컨대, 전지 구동의 시스템 등에 적합하다.
다음에, 도 39에 도시한 논리 제어 영역의 각 레지스터에 어떠한 할당이 이루어지고 있는지를 설명한다.
제어 레지스터(78)는 Y어드레스가 0h인 D0∼D15의 16비트가 할당되고 있다. 그리고, 비트 D0에 1을 기록함으로써 암호 기능이 리셋된다. 즉, 암호 연산 논리(74)에 소정 시간의 리셋 펄스를 인가하는 처리가 실행된다. 또, 비트 D1이 1인 경우에는 암호 연산 논리(74)가 암호 처리 중인 것을 나타낸다. 따라서, 외부에서 암호 연산 논리로 액세스하는 경우에는 비트 D1로 표시되는 플래그가 0인 것을 확인하고 나서 액세스해야 한다.
이 제어 레지스터(78)는 공개키와 비밀키의 양쪽 방식 공통으로 이용된다.
다음에, 비밀키 방식의 제어에 이용되는 몇 개의 레지스터의 예에 대해서 설명한다.
Y=1h인 어드레스에 대해서는 모드 레지스터(80)가 할당되고 있고, 이 16비트 중 비트 D1, D0은 암호 방식 선택에 사용된다. 이 2개의 비트가 "01"이면 암호 방식은 DES이고, "10"이면 암호 방식은 트리플 DES이다. "00"이면 암호 방식은 유지된다.
비트 D5∼D2는 블럭 암호화 모드 선택에 사용된다. 이 비트가 "0001"이면 블럭 암호화 모드는 ECB가 지정된다. 또, "0010"인 경우에는 블럭 암호화 모드는 CBC가 지정된다. "0100"인 경우에는 암호 모드는 OFB가 지정된다. 이들 비트가"1000"인 경우에는 블럭 암호화 모드는 CFB64로 지정된다. 또, 이들 비트가 "0000"인 경우에는 블럭 암호화 모드는 유지된다.
비트 D8∼D6은 데이터 처리 모드의 선택에 사용된다. 이들 비트가 "001"인 경우에는 통상 모드가 지정되고, "010"인 경우에는 블럭 모드가 지정되고, "100"인 경우에는 버퍼 모드가 지정되고, "000"인 경우에는 데이터 처리 모드는 유지된다.
이와 같이, Y=1h인 1어드레스 2Byte의 데이터인 16비트를 복수의 모드 지정에 할당할 수 있으므로, 2의 16승의 조합을 유효하게 사용하면 지정할 모드가 복수인 경우에도 1회의 액세스에 의해 동작 모드의 지정을 완료할 수 있다.
어드레스 Y=02h에는 상태 레지스터(82)가 할당되고 있다. 상태 레지스터의 비트 D1, D0이 "01"일 때는 암호화를 나타내고, "10"일 때는 복호화를 나타내고, "00"일 때는 유지를 나타낸다. 비트 D5, D4가 "01"일 때에는 평문 또는 암호문의 입력 개시를 나타내고 있고, "10"일 때에는 입력 정지를 나타내고, "00"일 때에는 유지를 나타낸다.
비트 D9∼D6은 OFB, CFB의 1블럭 중 텍스트 길이를 나타낸다. Y어드레스 3h∼6h는 64비트의 DES의 키 등이 저장되는 영역이다. 또, 어드레스 Y=7h∼Ah의 영역은 Triple-DES에 사용되는 키를 저장하는 영역이다.
제 1 데이터 레지스터(84)는, 상술한 바와 같이, 암호화 또는 복호화하고자 하는 데이터를 논리 회로(74)에 입력하기 위한 레지스터이다.
제 2 데이터 레지스터(86)는, 상술한 바와 같이, 암호화 또는 복호화한 데이터를 논리 회로(74)로부터 판독하기 위한 레지스터이다.
제 1 데이터 레지스터(84) 및 제 2 데이터 레지스터(86)는 모두 외부로부터는 1개의 레지스터로 보이지만 실제로는 복수의 레지스터로 구성되어 있고, 일종의 FIFO(First In First Out) 메모리이다.
도 40은 제 1 데이터 레지스터(84)로의 데이터 기록을 도시한 도면이다. 도 40(a) 내지 (c)로 순차적으로 데이터가 기록된다. 도 38에는 도시를 생략하고 있지만, 제 1 데이터 레지스터(84)를 FIFO로서 동작시키기 위한 카운터가 마련되어 레지스터의 어드레스를 카운트하고 있다.
도 41은 제 1 데이터 레지스터(84)로부터의 데이터 판독을 도시한 도면이다. 도 41(a) 내지 (c)로 순차적으로 데이터가 판독된다.
제 2 데이터 레지스터(86)도 제 1 데이터 레지스터(84)와 마찬가지의 FIFO 동작을 실행한다.
그 밖에는 도 38에는 도시되어 있지 않지만 암호화를 위한 초기 벡터를 설정하는 레지스터, 블럭 길이를 지정하는 레지스터, 버퍼 개수를 지정하는 레지스터, 버퍼 ID를 나타내는 레지스터 등이 있다.
또, 공개키 방식, 예컨대, RSA 암호 처리를 실행하기 위해서 Y=12h∼1Fh의 영역은 예약 영역으로 되어 있다. 나중에 설명하는 바와 같이, 공개키 방식인 경우에는 암호 처리 결과가 내장된 레지스터에 유지되기 때문에 암호 처리 중이어도 DRAM 영역으로 액세스할 수 있다.
SDRAM에 대한 ACT 명령에 의해 판독되는 행어드레스 X가 3FFFh인 경우에 멀티플렉서(48)가 이것을 검출하여 선택기(76)를 활성화시킨다. 그리고, 판독 명령또는 기록 명령에 의해 열어드레스 Y가 입력됨으로써, 어느 쪽의 레지스터로 액세스할 것인지가 선택된다. 그리고, 입출력 회로(52)를 거쳐서 외부로부터 입력되는 데이터가 레지스터에 기록된다.
실시예 3의 경우에는 논리 제어 영역으로서 확보한 어드레스 영역은 3FFF00h∼3FFFFFh이지만, 모드 레지스터 설정 명령에 의해 설정할 수 있는 레지스터(50)의 유지 내용에 따라서 멀티플렉서에서 할당하여 어드레스를 변경할 수 있도록 함으로써, 여러 가지 마이크로 컴퓨터 시스템에 본 발명의 논리 내장 DRAM을 탑재할 수 있게 된다.
모드 레지스터 설정 명령에 의해 어드레스를 할당하지 않는 경우, 본 발명의 논리 내장 DRAM은 통상의 64Mbit의 SDRAM으로서 사용할 수 있다. 통상의 SDRAM으로 사용하는 용도를 위해, 모드 레지스터에 내부 탑재 논리를 사용할 것인지 여부를 지정하는 비트를 마련해도 좋다.
도 42는 도 38에 도시한 논리 내장 DRAM(30)의 동작을 설명하기 위한 제 1 흐름도이다.
도 42를 참조하면, 우선 처리가 개시되면(단계 S200), 암호 회로의 리셋이 실행된다(단계 S202). 즉, 암호 회로를 사용하기 전에 우선 최초에 제어 레지스터 내의 리셋 비트에 논리 "1"을 기록하여 암호 회로를 리셋한다.
계속해서, 각종 데이터의 설정을 실행한다(단계 S204). 예컨대, 암호화 또는 복호화의 선택, 암호 모드의 선택, 암호키의 입력, 초기 벡터의 입력을 실행한다. 이미 설정이 실행된 경우(설정 완료의 경우)에는 이 처리를 생략해도 좋다.
다음에, 레지스터 내의 카운터의 리셋을 실행한다(단계 S206). 즉, 제어 레지스터 내의 제 1 및 제 2 레지스터용의 리셋 비트에 논리 "1"을 기록함으로써 데이터 레지스터(84) 및 (86)의 어드레스 카운터를 리셋한다.
다음에, 암호화하고자 하는 데이터 또는 복호화하고자 하는 데이터의 입력을 실행한다(단계 S208). 즉, 데이터 입력 개시 비트를 설정하여 암호화 또는 복호화하고자 하는 데이터를 제 1 데이터 레지스터(84)에 대해서 연속하여 기록한다. 기록된 데이터는 데이터 레지스터(84)에는 FIFO 모드에서 순차적으로 저장된다. 기록될 때마다 데이터 레지스터(84)의 어드레스 카운터가 인크리먼트된다. 데이터 입력이 종료되면, 데이터 입력 개시 비트의 클리어(또는 종료 비트의 설정)가 실행된다. 이것에 의해, 직렬로 기록된 데이터가 암호화 처리를 실행하기 위한 병렬 데이터로 변환된다.
계속해서, 논리 회로(84)에 있어서 연산 처리가 개시된다(단계 S210). 제어 레지스터(78)의 연산 개시 비트에 논리 "1"을 기록함으로써 연산이 개시된다.
계속해서, 연산 처리가 실행된다(단계 S212). 연산 실행 중에는 상태 레지스터(82)의 비지 비트가 논리 "1"로 되어 있다. 이 비트를 체크함으로써 연산 실행중인지 여부를 판정할 수 있다. 이 논리값은, 예컨대, 신호 RdL로서 판독할 수 있다. 암호 연산 논리(74)에서 처리한 데이터는 수시로 제 2 데이터 레지스터(86)에 FIFO 방식으로 저장되어 간다. 데이터가 저장될 때마다 제 2 데이터 레지스터(86)에 대한 어드레스 카운터가 인크리먼트된다.
이것에 의해, 병렬로 출력된 암호 처리 결과의 데이터가 직렬 데이터로서 출력 가능하게 된다.
연산이 종료되면(단계 S214), 상태 레지스터의 비지 비트가 논리 "0"으로 된다. 계속해서, 연산 결과의 판독이 실행된다(단계 S216). 연산 결과를 판독하는 경우에 제 2 데이터 레지스터(86)에 대한 어드레스 카운터를 리셋한다. 데이터 레지스터(86)로부터 연속적으로 데이터를 판독한다. 데이터를 판독할 때마다 제 2 데이터 레지스터(86)에 대한 어드레스 카운터가 인크리먼트된다.
도 43은 도 38에 도시한 논리 내장 DRAM(30)의 다른 동작을 설명하기 위한 흐름도이다.
도 43을 참조하면, 단계 S206까지의 처리는 도 42와 마찬가지이다.
도 43에서는 계속해서 암호 연산 논리(74)에서의 연산 처리가 개시된다(단계 S209). 제어 레지스터의 연산 개시 비트에 논리 "1"을 기록함으로써 연산이 개시된다. 단, 제 1 데이터 레지스터(84)가 빈 경우에는 암호 연산 논리(74)는 대기 상태이다.
다음에, 데이터 입력이 실행된다(단계 S211). 데이터 입력 개시 비트를 설정하여 암호화 또는 복호화하고자 하는 데이터를 데이터 레지스터(84)에 대해서 연속하여 기록한다. 기록된 데이터는 제 1 데이터 레지스터(84)에 대해서 FIFO 방식으로 순차 저장된다. 기록될 때마다 제 1 데이터 레지스터(84)의 어드레스 카운터가 인크리먼트된다. 데이터 레지스터(84)에 8바이트의 데이터가 축적된 시점에서 연산 처리가 개시된다. 데이터 입력이 종료되면 데이터 입력 개시 비트를 클리어 또는 데이터 종료 비트를 설정한다.
다음에, 암호 연산 논리(74)에서 연산이 실행되어 간다(단계 S212). 연산 실행 중에는 상태 레지스터(82)의 비지 비트가 논리 "1"로 되어 있다. 이 비트를 체크함으로써 연산 실행 중인지 여부를 판정할 수 있다. 암호 연산 논리(74)에서 처리한 데이터는 수시로 제 2 데이터 레지스터(86)에 FIFO 방식으로 저장되어 간다. 데이터가 저장될 때마다 제 2 데이터 레지스터(86)에 대한 어드레스 카운터가 인크리먼트된다.
그 이후의 처리는 도 42의 처리와 마찬가지이므로 설명은 생략한다.
또한, 이상의 설명에서는 제 1 및 제 2 데이터 레지스터(84), (86)는 단지 레지스터 회로로 구성되는 것으로 하고 있었다.
그러나, 이러한 데이터 레지스터는 스태틱형 랜덤 액세스 메모리에 의해서 구성할 수도 있다.
도 44는 이와 같이 암호 연산 논리(74)로의 데이터의 입출력을 실행하기 위한 제 1 및 제 2 데이터 레지스터를 SRAM에 의해 구성한 경우의 구성을 도시한 도면이다.
이상과 같은 구성에 의해서도 시스템의 요구에 따라서 암호화 처리 등의 논리 연산을 고속으로 실행하는 것이 가능하다.
(실시예 4)
도 45는 본 발명의 실시예 4의 논리 내장 DRAM(130)의 구성을 설명하기 위한 개략 블럭도이다.
도 45에 도시한 실시예 4의 논리 내장 DRAM(130)의 구성은 도 38에 도시한 실시예 3의 논리 내장 DRAM(30)의 구성과 기본적으로는 거의 마찬가지이다.
그러나, 우선 논리 내장 DRAM(130)에서는 메모리셀 어레이(38)에 있어서 뱅크 #0∼#3의 4개의 뱅크가 마련되고, 이들 각 뱅크는 서로 독립적으로 판독 및 기록이 실행되는 구성으로 되어 있다.
이것에 대응하여, 각 뱅크마다 행디코더(56.0∼56.3), 열디코더(58.0∼58.3), 센스 앰프(60.0∼60.3)가 마련되어 있다.
또, 도 45에서는 제어 신호로서 암호 처리를 실행하는 것을 외부로부터 지시하기 위한 제어 신호 CRYPT가 인가되는 제어 신호 입력 단자(11)가 새롭게 마련되어 있다.
또, 논리 내장 DRAM(130)에서는 리프레시 동작이나 블럭 모드 동작, 버퍼 모드 동작 등에 있어서 내부 어드레스를 자동 생성하기 위한 어드레스 카운터와, 제어 신호 및 어드레스 신호에 따라서 DRAM의 동작을 제어하기 위한 DRAM 제어부(42b)와, 레지스터나 논리 회로 및 논리 회로와 DRAM 사이의 데이터의 송수신 등을 제어하기 위한 레지스터 논리 DRAM 제어부(42a)로 제어 회로(42)를 명확하게 나누어 나타내고 있다.
또한, 도 45에서는 도 38에 도시한 제어 레지스터(78), 모드 레지스터(80) 및 상태 레지스터(82)는 레지스터0(이하, Reg0이라고도 약기함)으로 나타내고, 제 1 데이터 레지스터(84)(이하, Reg1이라고도 약기함)에 대응하여 카운터(85), 제 2 데이터 레지스터(86)(이하, Reg2라고도 약기함)에 대해서 제 2 어드레스카운터(87)를 각각 명확하게 나타내고 있다.
도 45에 도시한 실시예 4의 논리 내장 DRAM(130)에 있어서도 모드 레지스터(50)는 DRAM의 제어 명령인 모드 레지스터 설정 시의 파라미터를 유지하기 위한 것이다. 또, 모드 레지스터(50)는 DRAM의 모드 설정뿐만 아니라 레지스터 Reg0, 제 1 데이터 레지스터(84) 및 제 2 데이터 레지스터(86)로의 액세스의 인에이블이나 디스에이블을 설정할 수도 있다. 또, 모드 레지스터 설정이 입력되면, 제어 레지스터와 암호 논리 회로(74)가 리셋된다.
또, 도 45에 도시한 논리 내장 DRAM(130)에 있어서도 레지스터 Reg0은 암호 논리 회로(74)를 제어하는 명령이나 모드를 제어하기 위한 레지스터이며, 제 1 데이터 레지스터 Reg1은 암호 논리의 입력 데이터를 유지하기 위한 것이고, 제 2 데이터 레지스터 Reg2는 암호 논리의 출력 결과를 유지하는 것이다.
그 밖에는 기본적으로 도 38에 도시한 실시예 3의 논리 내장 DRAM(30)의 구성과 마찬가지이므로, 동일 부분에는 동일 부호를 붙이고 그 설명은 반복하지 않는다.
(레지스터-레지스터 동작)
다음에, 도 45에 도시한 실시예 4의 논리 내장 DRAM(130)의 동작에 대해서 설명한다.
실시예 1 등에서는 암호 처리하기 위한 데이터는 논리 회로(74)에 대해서 외부로부터 또는 메모리셀 어레이로부터 인가되고, 암호 처리된 후의 데이터는 메모리셀 어레이에 재차 기록되는 구성이었다.
그러나, 도 45에 도시한 바와 같이, 논리(74)에 대한 데이터 입출력을 위한 2개의 레지스터(85), (86)가 마련되는 구성으로 되어 있으면, 이하와 같은 동작(「레지스터-레지스터 동작」)을 실행할 수도 있다.
도 46은 이러한 레지스터-레지스터 동작을 설명하기 위한 개념도이다.
우선, 제어 신호를 입력함으로써 레지스터0에 데이터를 기록하여 기록모드 설정을 실행한다(①).
계속해서, 외부로부터 데이터 입출력 단자(14)를 거쳐서 암호(또는 복호) 데이터를 제 1 레지스터(84)에 대해서 기록한다(②).
암호 처리를 위한 데이터 블록 분량의 데이터, 즉 8바이트 분량의 데이터가 입력된 시점에서 암호 논리 회로(74)의 처리가 개시된다(③). 계속해서, 처리가 완료된 8바이트마다 제 2 레지스터(86)에 대해서 처리 결과가 기록된다(④).
이러한 암호 논리 회로(74)의 처리가 실행되고 있는 동안에는 뱅크0 내지 뱅크3에 대해서는 외부로부터 액세스를 실행하는 것이 가능하다.
계속해서, 레지스터0 중 플래그 FL이 0인 것을 확인하고 나서, 제 2 레지스터(86)로부터 데이터를 데이터 입출력 단자(14)를 거쳐서 외부로 출력한다(⑤).
도 47은 이러한 논리 내장 DRAM(130)의 동작을 더욱 자세하게 설명하기 위한 흐름도이다.
우선, 전원이 투입되고(단계 S300), DRAM의 초기화가 실행된다(단계 S302).
계속해서, 제어 신호 입력 단자(11)에 인가되는 신호 CRYPT가 "H"레벨로 되고, 이것에 의해 레지스터0으로의 데이터를 기록할 수 있게 한다.
계속해서, 전원 투입 후 암호 기능을 처음으로 사용할 때에는 소프트 리셋이 실행된다(단계 S306).
또, 각종 모드의 설정이 실행된다(단계 S308). 예컨대, 비밀키 암호 방식의 선택이나 키 입력을 실행할 것인지 여부나 암호 처리 모드의 선택 등이 실행된다.
또, 계속해서 필요에 따라 초기 벡터 IV의 입력이 실행된다(단계 S310).
그리고, 비밀키의 입력이 실행된다(단계 S312).
또, 처리는 초기 입력을 실행할 것인지에 대한 선택과 암호/복호 중 어느 것을 실행할 것인지에 대한 선택으로 이행되고(단계 S314), 계속해서 초기 입력을 실행하는 것이면, 제 1 레지스터 Reg1에 대상 데이터의 입력이 실행된다(단계 S316).
이상의 초기 설정이 종료되면, 통상은 우선 입력 개시 명령이 인가된다(단계 S318). 이 때, 레지스터0 중 플래그 FL이 "1"로 설정된다.
계속해서, 제 1 레지스터(84)에 대해서 대상 데이터의 입력이 실행된다(단계 S320). 8바이트 분량만큼의 데이터 입력이 완료된 시점에서 암호/복호 처리가 개시된다. 처리 결과는 수시로 제 2 레지스터(86)에 기록된다. 제 1 레지스터가 비어 있게 되면, 처리는 대기 상태로 된다.
다음에, 입력 정지 명령이 입력되면(단계 S322), 계속해서 플래그 체크가 실행된다(단계 S324). 처리가 완전히 종료되면 플래그 FL이 "0"으로 되어 있으므로, 이것을 확인한 후에 제 2 레지스터(86)로부터 데이터를 데이터 입출력 단자(14)를 거쳐서 외부로 판독한다(단계 S326).
이하의 처리는 상술한 처리와 마찬가지의 처리가 반복된다.
또한, 단계 S314와 단계 S318은 카운터(85)의 값을 적절하게 리셋함으로써 동시에 입력할 수도 있다.
도 48은 도 47에 도시한 바와 같은 처리 흐름 중 논리 내장 DRAM(130)의 동작을 설명하기 위한 타이밍 도이다.
제 1 레지스터(84)로의 데이터의 기록이 실행되고 있는 기간을 제외하고는 암호 논리 회로(74)가 동작 중이어도 DRAM에 대해서 액세스를 하는 것은 가능하다.
암호 논리의 동작에 의해 처리가 완료될 때마다 순차적으로 제 2 레지스터(86)에 대해서 데이터가 기록된다.
또, 제 2 레지스터로부터 데이터를 외부로 판독하고 있는 기간 중에는 DRAM으로 액세스하는 것은 불가능하다.
이상과 같은 처리를 실행함으로써, 암호 논리 회로(74)가 동작 중이어도 레지스터에 대해 외부로부터 액세스되고 있지 않으면 언제라도 DRAM으로 액세스할 수 있다.
따라서, 암호 처리 중에 인터럽트가 있어도 문제는 없고, 암호 처리 중에 DRAM에 대해 데이터의 기록 또는 판독을 실행하는 것이 가능하다.
여기서, 제 1 레지스터(84) 및 제 2 레지스터(86)는 8비트 폭의 FIFO(512단)로서 기능한다. 데이터 기록이 최후미에 도달하면 선두로 옮겨 오버라이트가 실행되므로, 그때까지 제 2 레지스터로부터는 처리 결과를 판독해 두는 것이 필요하다.
(레지스터-DRAM 동작 모드)
도 49는 도 45에 도시한 논리 내장 DRAM(130)의 다른 동작(「레지스터-DRAM 동작 모드」)을 설명하기 위한 개념도이다.
도 46에서는 암호 논리 회로(74)에서 처리된 데이터는 데이터 입출력 단자(14)를 거쳐서 외부로 판독되는 구성이었다.
그러나, 암호화 처리가 실행된 데이터를 외부로 판독하는 것이 아니라 DRAM 부의 메모리셀 어레이에 기록하는 구성으로 할 수도 있다.
이 때, 특정한 1개의 뱅크, 예컨대, 뱅크3을 이러한 데이터 기록을 실행하기 위한 뱅크로서 미리 지정해 두는 것으로 한다.
이와 같이 하면, 다른 뱅크에 메모리 제어기 등으로부터 인터럽트가 있었을 때에도 대처할 수 있게 된다.
도 49를 참조하면, 우선 레지스터0에 대해서 데이터를 기록함으로써 모드 설정이 실행된다(①). 계속해서, 암호 또는 복호 처리를 실행하기 위한 데이터를 제 1 레지스터(84)에 대해서 기록한다(②).
8바이트의 데이터가 제 1 레지스터(84)에 입력된 시점에서 암호 연산 논리(74)에서의 암호 처리가 개시된다(③).
처리가 완료된 후 8바이트마다 제 2 데이터 레지스터(86)에 대해서 데이터의 기록이 실행된다(④).
레지스터 1로의 데이터 입력부터 레지스터 2로의 데이터를 입력하고 있는 기간에는 DRAM의 뱅크0 내지 뱅크3으로는 액세스를 실행하는 것이 가능하다.
계속해서, 플래그 FL이 "0"인 것을 확인하고 나서 레지스터-DRAM 전송 모드로 엔트리한다(⑤).
이러한 엔트리가 실행되면, 레지스터 전송지 뱅크(예컨대, 뱅크3)로의 데이터의 기록이 실행된다(⑥).
제 2 데이터 레지스터(86)의 카운터를 리셋하면 선두부터 기록되고, 리셋을 실행하고 있지 않은 경우에는 도중부터 재개된다.
이 경우에는 전송하고자 하는 어드레스에 기록 액세스를 함으로써 데이터의 전송을 실행한다.
이상의 데이터 전송이 종료하면, 레지스터-DRAM 전송 모드로부터 빠져나간다(⑦).
이상의 처리 기간 중에 있어서, 레지스터 전송지로 지정되어 있지 않은 뱅크로의 액세스는 도 46에서 설명한 것과 마찬가지로 액세스 가능하다.
도 50은 이상과 같은 구성을 가능하게 하기 위해서, 제 1 레지스터(84) 및 제 2 레지스터(86)와 카운터(85) 및 카운터(87)의 동작의 개념을 설명하기 위한 개념도이다.
제 1 카운터(85)는 데이터의 기록이 끝난 위치를 카운트 CT1로서 계수하고 있고, 반면에 논리 회로(74)로의 입력이 어디까지 완료되어 있는지를 카운트 CT2로서 계수하고 있다.
한편, 제 2 카운터는 처리 결과를 어디까지 기록 완료하고 있는지를 카운트 CT3으로서 계수하고 있다.
제 1 레지스터(84)에서는 CT2〈CT1로 될 때까지 처리가 계속된다. 제 1 레지스터(84)로의 기록 동작은 판독 동작보다 우선 순위가 높다.
도 51은 도 49에서 설명한 동작을 더욱 자세하게 설명하기 위한 흐름도이다.
도 51을 참조하면, 단계 S324까지의 처리는 기본적으로 도 47에 도시한 처리와 마찬가지이다.
그 후, 플래그 FL이 "0"인 것이 확인되면, 레지스터-DRAM 전송 모드로 엔트리한다(단계 S330).
계속해서, 제 2 레지스터(86)의 어드레스 카운터(87)가 리셋되고(단계 S332), DRAM의 기록 명령이 입력된다(단계 S334).
이에 따라서, 제 2 레지스터(86)에서, 예컨대, 뱅크3으로의 데이터의 전송이 실행된다.
계속해서, 레지스터-DRAM 전송 모드에서 빠져나가기 위한 명령이 인가된다(단계 S336).
그 후는 제어 신호에 의한 지정에 따라서 단계 S314, 단계 S318 또는 단계 S330 중 어느 하나로 처리가 복귀된다.
이상과 같은 처리를 실행함으로써, 레지스터-레지스터 사이에서의 동작이 종료된 후 처리 결과를 제 2 레지스터(86)에서 DRAM으로 전송할 수 있다.
이 때, DRAM의 기록 명령을 인가함으로써 레지스터 2의 데이터를 DRAM에 대해서 액세스한 어드레스에 대해서 데이터의 전송을 실행한다.
이 때, 외부 데이터 입출력 단자(14)에 인가되는 데이터는 무효로 된다.
또, DRAM으로의 판독 액세스에 의해 액세스한 어드레스의 판독 데이터가 제 2 레지스터(86)로 전송되고, 데이터를 외부로 판독하고자 할 때에는 이 제 2 레지스터(86)로부터 데이터 입출력 단자(14)를 거쳐서 데이터의 판독을 실행하는 구성으로 할 수도 있다.
(레지스터-DRAM 전송 모드 기간 중의 외부 버스)
한편, 이상에서 설명한 바와 같은 「레지스터-DRAM 동작 모드」(또는 나중에 설명하는 「DRAM-레지스터 동작 모드」)에 있어서의「레지스터-DRAM 전송 모드」의 기간 중에서는 논리 내장 DRAM(130)에 액세스함으로써 논리 내장 DRAM(130) 칩 내부의 데이터 버스 mbus를 거쳐서 레지스터(84), (86)와 DRAM부 사이에서 데이터의 전송이 실행된다.
도 52는 이러한 논리 내장 DRAM(130a) 및 (130b)이 외부 버스 ext.bus를 거쳐서 마이크로 제어기 유닛 MCU와 접속되는 경우의 외부 데이터 버스의 상태를 도시한 도면이다.
도 52에 도시하는 바와 같이, 「레지스터-DRAM 전송 모드」에서는 논리 내장 DRAM(130b)의 데이터 입출력 단자에 데이터의 입력을 실행하거나 반대로 데이터 입출력 단자로부터 데이터가 출력되는 것과 같은 일이 없다. 따라서, 외부 버스 ext.bus 중 데이터 입출력 단자가 접속되어 있는 버스는 다른 칩에 대해서 개방되어 있다. 따라서, 예컨대, 논리 내장 DRAM(130a)은 외부 버스 ext.bus에 대해서 데이터의 송수신을 실행할 수 있다.
도 53은 논리 내장 DRAM(130b)이, 「레지스터-DRAM 전송 모드」에 있어서, 풀 페이지(full page) 모드로 동작하고 있는 상태를 도시한 타이밍 도이다.
즉, 도 53 중, 시각 t1에 있어서, ACT 명령과 행어드레스 Xa의 입력이 실행되고, 시각 t2에 있어서 판독 명령 RD(또는 기록 명령 WT)와 열어드레스 Ya의 입력이 실행되어 논리 내장 DRAM(130b)은 풀 페이지 모드의 동작을 개시한다. 프리차지 명령 등이 인가될 때까지의 기간 TP1에서는 행어드레스는 Xa로 고정되고, 열어드레스가 내부에서 발생되면서 열어드레스 Y=Ya, Ya+1, Ya+2, …의 DRAM부의 데이터가 레지스터와의 사이에서 전송된다.
따라서, 기간 TP2에서는 데이터 입출력 단자가 접속되는 버스뿐만 아니라 어드레스 버스와 명령 버스도 다른 칩에 대해서 개방된다.
즉, 이러한 기간 TP2를 다른 장치의 액세스에 유효하게 이용할 수 있게 된다.
(레지스터의 어드레스 할당)
도 54는 레지스터0, 제 1 데이터 레지스터(84) 및 제 2 데이터 레지스터(86)에 대한 어드레스의 할당을 도시한 도면이다. 또, 도 55는 이들 레지스터에 유지되는 데이터의 예를 도시한 도면이다.
또한, 행어드레스 x는 전부 #3FFF인 것으로 한다.
도 54 및 도 55를 참조하면, 열어드레스 y=#00에 대해서는 소프트 리셋을 실행하거나 또는 플래그가 설정된다.
여기서, 데이터 D0이 1이면 암호 기능을 리셋하는 것을 나타내고, 데이터 D1은 암호 처리 중인 것을 나타내는 플래그이다.
y어드레스의 #01은 모드나 암호 영역의 설정이다.
이 영역에는 암호 방식의 선택이나 키의 길이 및 블럭 암호화 모드의 선택 이외에도 레지스터 전송 모드 기간 중 내장 레지스터와의 사이에서 직접 데이터를 전송할 수 있는 뱅크가 지정된다.
y어드레스 #02는 암호화 또는 복호화 내지는 유지를 실행할 것인지를 나타내는 데이터나 평문 또는 암호화의 입력 개시/정지/유지를 지시하는 데이터나 제 1 레지스터(84)의 카운터(85)를 리셋하기 위한 신호나 제 2 레지스터(86)의 어드레스 카운터(87)를 리셋하기 위한 신호가 유지된다.
그 외에, 연쇄가 있는 블럭 번호의 경우, 초기 벡터의 입력을 실행할 것인지 처리 도중의 전체 데이터를 초기 데이터로서 선택할 것인지를 나타내는 데이터도 저장된다.
y어드레스 #03은 제 1 레지스터(84)로의 데이터 기록 시에 액세스된다.
y어드레스 #04는 제 2 레지스터(86)로의 액세스를 나타내는 어드레스이다.
y어드레스 #05에는 레지스터 DR 전송 모드의 제어를 위한 데이터가 저장된다.
y어드레스 #06에는 부분 리프레시의 제어를 위한 데이터가 저장된다. 여기서, 부분 리프레시라는 것은 셀프 리프레시 시에 지정한 어드레스 공간만 리프레시하는 기능을 말한다.
y어드레스 #10∼#13에는 키 길이가 64비트인 제 1 키가 저장되고, y어드레스 #14∼#17에는 키 길이가 64비트인 제 2 키가 저장된다.
y어드레스 #18∼#1B에는 키 길이가 64비트인 제 3 키가 저장된다.
y어드레스 #1C∼#1F에는 초기값의 초기 벡터가 저장된다.
y어드레스 #20∼y어드레스 #5F는 공개키용으로 예약된 영역이다.
(DRAM-레지스터 동작 모드)
다음에, DRAM부와 레지스터0, 제 1 레지스터(84), 제 2 레지스터(86) 사이에서의 다른 동작에 대해서 더욱 설명한다.
도 56은 이러한 DRAM에 미리 저장된 데이터를 논리 회로(74)에서 암호화 처리하여 외부로 출력하는 동작 모드(이하, 「DRAM-레지스터 동작 모드」라고 함)를 설명하기 위한 개념도이다.
도 56을 참조하면, 우선 제어 신호 입력 단자(10), (11)로부터 소정의 신호를 입력함으로써, 레지스터0 내에 데이터를 기록하고 레지스터-DRAM 전송 모드로 들어간다(①).
다음에, 암호화(또는 복호화)하고자 하는 데이터를 DRAM부에서 제 1 레지스터(86)로 전송한다(②). 제 1 레지스터(84)의 카운터가 리셋되어 있으면, 제 1 레지스터(84)의 선두부터 데이터의 전송이 실행되고, 리셋되어 있지 않으면 도중부터 데이터 전송이 재개된다. 이 경우, DRAM부의 전송하고자 하는 어드레스를 판독 액세스함으로써 전송될 데이터의 지정을 실행한다(③).
제 1 레지스터(84)에 8바이트 분량의 데이터가 입력된 시점에서 암호 논리 회로(74)에서의 처리가 개시된다(③). 처리가 완료된 데이터는 8바이트씩 제 2 레지스터(86)에 기록된다(④).
여기서, 소정의 제어 신호를 입력함으로써 레지스터-DRAM 전송 모드에서 빠져 나온다(⑤). 이 때, 처리 ①∼⑤의 레지스터-DRAM 전송 모드 중에서 레지스터로의 전송원에 지정되어 있지 않은 뱅크로의 액세스는 이상의 처리가 실행되고 있는지 여부에 관계없이 가능하다.
논리 내장 DRAM(130)에 대해서 플래그 FL="0"인 것을 확인한 후, 제 2 레지스터(86)로부터 데이터 입출력 단자(14)를 거쳐서 데이터의 판독을 실행한다(⑥).
도 57은 도 56에서 설명한 동작을 더욱 자세하게 설명하기 위한 흐름도이다.
도 57을 참조하면, 단계 S312까지의 처리는 기본적으로 도 51에 도시한 처리와 마찬가지이다.
계속해서, 초기 입력, 암호/복호의 선택을 실행한 후(단계 S340), 처리가 개시되면(단계 S342) 레지스터-DRAM 전송 모드로 엔트리한다(단계 S344).
계속해서, 제 1 레지스터(84)의 어드레스 카운터(85)가 리셋되고(단계 S346), DRAM의 판독 명령이 입력된다(단계 S348).
이에 따라서, 제 1 레지스터, 예컨대, 뱅크3으로의 데이터의 전송이 실행된다.
제 1 레지스터로의 데이터 입력이 완료되면, 계속해서 레지스터-DRAM 전송 모드에서 빠져나가기 위한 명령이 인가된다(단계 S350).
그 후는 처리의 개시 명령의 입력(단계 S352)에 의해 제 1 레지스터의 데이터가 암호화/복호화 처리된다. 여기서, 이 처리는 제 1 레지스터의 데이터 최후미까지 실행되고 자동적으로 종료한다.
그 후, 플래그 FL이 "0"인 것이 확인되면, 제 2 레지스터의 내용이 데이터 입출력 단자(14)로부터 판독된다(단계 S360).
이후는 제어 신호에 의한 지정에 따라서 단계 S340, 단계 S344 중 어느 하나로 처리가 복귀한다.
이상과 같은 처리를 실행함으로써 레지스터-레지스터 사이에서의 동작이 종료된 후 처리 결과를 제 2 레지스터(86)에서 외부로 전송할 수 있다.
처리 개시 명령이, 단계 S342에서 입력된 경우에는 제 1 레지스터에 연산 최소 단위의 데이터가 저장된 시점에서 처리가 개시된다.
(레지스터-DRAM 전송 모드를 이용한 대기 전류의 저감)
또, 「레지스터-DRAM 전송 모드」를 이용함으로써 이하에 설명하는 바와 같이 논리 내장 DRAM(130a)의 대기 전류를 대폭 감소시키는 것도 가능하다.
즉, 제 1 레지스터(84)가, 예컨대, SRAM 등의 리프레시가 불필요한 회로로 구성되어 있는 것으로 한다.
이 경우에, 유지를 필요로 하는 데이터의 크기가 제 1 레지스터(84)의 크기 이하일 때는 그 데이터를 제 1 레지스터(84)로 전송해 두면, DRAM부분의 리프레시 동작은 불필요하게 된다. 그 결과, 대기 전류를 억제할 수 있게 된다.
이러한 동작을 실행시키기 위해서는, 예컨대, 이하와 같은 절차를 취한다.
ⅰ) 「레지스터-DRAM 전송 모드」에서 필요한 데이터를 DRAM부에서 제 1 레지스터(84)로 직접 전송한다.
ⅱ) 부분 셀프 리프레시의 뱅크 설정에 있어서 전체 뱅크를 비선택으로 한다.
ⅲ) 셀프 리프레시 모드로 엔트리한다.
ⅳ) 대기 상태로 들어간다.
통상의 셀프 리프레시 시에는 명령, 어드레스, 데이터 입출력 단자 등의 입력 버퍼는 비활성 상태로 된 후에 DRAM부가 자동적으로 리프레시된다. 이 상태에서는, 예컨대, 대기 전류는 300㎂정도를 소비하고 있다. 이것에 대해서, 상술한 바와 같은 동작을 실행하면 리프레시 동작에 필요한 전류가 소비되지 않으므로, 대기 전류를, 예컨대, 20㎂ 이하로 저감하는 것이 가능하다.
(실시예 4의 변형예 1)
도 58은 레지스터-DRAM 전송 모드에서 동작할 때의 전송 효율을 향상시키기 위한 데이터 전송 타이밍의 개념을 도시한 도면이다.
도 58을 참조하면, 제 2 레지스터(86)에서 DRAM부로 데이터를 기록하는 경우에는, 레지스터-DRAM 전송 모드에 있어서, DRAM 영역의 어드레스를 논리 내장 DRAM(130)에 인가했을 때에 데이터 입출력 단자(14)에 대해서 다음에 입력하고자 하는 텍스트 데이터를 인가해 두는 것으로 한다.
이 경우에, 제 2 레지스터(86)에서 DRAM부에 대해서 데이터가 전송되는 것뿐만 아니라 데이터 입출력 단자(14)에 인가되고 있는 데이터가 제 1 레지스터(84)에 입력되는 것으로 한다. 이와 같이 하면, 데이터 전송의 효율을 향상시킬 수 있다.
한편, 레지스터-DRAM 전송 모드에 있어서, DRAM부에서 제 1 레지스터(84)로 데이터를 전송하기 위해서, DRAM 영역의 어드레스를 논리 내장 DRAM(130)에 인가했을 때에 소정의 DRAM 어드레스의 데이터가 제 1 레지스터(84)로 전송될 뿐만 아니라 제 2 레지스터(86)의 데이터가 데이터 입출력 단자(14)에서 외부로 출력되는 것으로 한다. 이와 같이 함으로써, 데이터 전송의 효율을 향상시킬 수 있다.
(실시예 4의 변형예 2)
도 59는 외부 클럭 신호 Ext.CLK의 주파수가 작은 경우에 데이터 전송의 효율을 향상시키기 위한 동작을 설명하는 타이밍 도이다.
외부 클럭 신호 Ext.CLK의 주파수가 작은 경우에는 DRAM부로 공급되는 내부 클럭 신호 clkM은 외부 클럭 신호 Ext.CLK를 승산한 것으로 된다. 이 때, 클럭의 전반과 후반에서 레지스터와 DRAM 중 어느 하나에 대해 각각 교대로 액세스하는 것으로 한다.
즉, 시각 t1에서, 제 2 레지스터(86)에서 DRAM부로의 데이터 전송(기록)이 지정된 경우, 우선 제 2 레지스터(86)의 데이터를 DRAM부로 전송한다. 계속해서, 다음의 내부 클럭 신호 clkM의 활성화 타이밍의 시각 t2에서는 데이터 입출력 단자(14)에 인가되어 있는 데이터를 제 1 레지스터(84)에 입력한다. 이하, 마찬가지로 해서 레지스터에서 DRAM으로의 데이터 전송을 실행한다.
한편, 시각 t3에서, DRAM부에서 제 1 레지스터(84)로의 데이터 전송(판독)이 지정된 경우, 우선 DRAM부의 데이터를 제 1 레지스터(84)로 전송한다. 계속해서, 다음의 내부 클럭 신호 clkM의 활성화 타이밍의 시각 t4에서는 제 2 레지스터(86)의 데이터를 DRAM부로 전송한다. 이하, 마찬가지로 해서 DRAM에서 외부로의 데이터 전송을 실행한다.
이상과 같은 구성으로 함으로써, 데이터 전송의 효율을 향상시킬 수 있다.
또한, 이상의 설명에서는 내부 버스 mbus의 버스 폭은, 예컨대, 16비트로 하고 있었지만, 이것을 32비트로 하여 데이터 전송을 실행하는 것으로 해서 레지스터로부터의 액세스와 DRAM 액세스를 동시에 실행할 수 있도록 할 수도 있다.
도 60은 CBC 모드에서의 암호화 또는 복호화 처리를 실행하기 위한 회로 구성의 일 예를 도시한 도면이다.
암호화 처리 개시의 최초에서는 초기 벡터 IV가 멀티플렉서(302)에 의해 선택되어 멀티플렉서(304)에 인가된다. 한편, 암호화 처리의 도중에서 다음 데이터 블럭의 처리를 실행하는 경우에는, 멀티플렉서(302)로부터 직전의 처리 결과가 멀티플렉서(304)에 인가된다.
멀티플렉서(304)는 암호화 처리에서는 멀티플렉서(302)로부터의 데이터를, 복호화 처리에서는 입력 데이터를 배타적 논리합 회로(308)의 한쪽 입력에 인가한다.
멀티플렉서(306)는 암호화 처리에서는 입력 데이터를, 복호화 처리에서는 암호화/복호화 회로(312)의 출력을 배타적 논리합 연산 회로(308)의 다른쪽 입력에 인가한다.
배타적 논리합 연산 회로(308)의 출력은 암호화 처리에서는 멀티플렉서(310)를 거쳐서 암호화/복호화 회로(312)에 인가되고, 반면에 복호화 처리에서는 멀티플렉서(314)를 거쳐서 출력된다.
복호화 처리에서는 입력 데이터가 암호화/복호화 회로(312)에 인가되고, 암호화/복호화 회로(312)의 출력은 멀티플렉서(306)를 거쳐서 배타적 논리합 연산 회로(308)의 다른쪽 입력에 인가된다.
한편, 암호화 처리에서는 암호화/복호화 회로(312)의 출력은 멀티플렉서(314)를 거쳐서 출력된다.
CBC 모드에서는 이러한 구성이 캐스케이드 형태로 접속되어, 도 18 및 도 19에서 설명한 바와 같은 암호화 처리 및 복호화 처리를 하는 것이 가능하다.
(실시예 5)
도 61은 본 발명의 실시예 5의 논리 내장 DRAM(132)의 구성을 설명하기 위한 개략 블럭도이다.
도 61에 도시한 실시예 5의 논리 내장 DRAM(132)의 구성은 도 45에 도시한 실시예 4의 논리 내장 DRAM(130)의 구성과 기본적으로는 거의 마찬가지이다.
그러나, 논리 내장 DRAM(132)에서는 제 2 레지스터(86)가 제거되고, 논리 회로(74)로의 데이터의 입출력은 제 1 레지스터(84)를 거쳐서 실행되는 점이 다르다.
그 밖의 점은 기본적으로 도 45에 도시한 실시예 4의 논리 내장 DRAM(130)의 구성과 마찬가지이므로, 동일 부분에는 동일 부호를 붙이고 그 설명은 반복하지 않는다.
(레지스터-레지스터 동작)
다음에, 도 61에 도시한 실시예 4의 논리 내장 DRAM(132)의 레지스터-레지스터 동작에 대해서 설명한다.
도 62는 실시예 4의 논리 내장 DRAM(132)의 레지스터-레지스터 동작을 설명하기 위한 개념도이다.
단, 레지스터(84)를 거쳐서 논리 회로(74)가 데이터의 송수신을 하는 점을 제외하고는 도 46의 동작과 마찬가지이다.
도 63은 이러한 논리 내장 DRAM(132)의 동작을 더욱 자세하게 설명하기 위한 흐름도로서, 도 47과 대비되는 도면이다.
도 47과 비교하면, 단계 S318, S320과 S322 대신에 단계 S319에 있어서 처리 연산이 개시되는 구성으로 되어 있다.
도 64는 도 61에 도시한 바와 같은 처리의 흐름 중 논리 내장 DRAM(132)의 동작을 설명하기 위한 타이밍 도이다.
제 1 레지스터(84)로의 데이터 기록 및 판독이 실행되고 있는 기간을 제외하고는 암호 논리 회로(74)가 동작 중이어도 DRAM에 대해서 액세스를 하는 것은 가능하다.
도 65는 도 61에 도시한 논리 내장 DRAM(132)의 레지스터-DRAM 동작을 설명하기 위한 개념도이다.
단, 레지스터(84)를 거쳐서 논리 회로(74)가 데이터의 송수신을 하는 점을 제외하고는 도 49와 마찬가지이다.
도 66은 도 65에서 설명한 동작을 더욱 자세하게 설명하기 위한 흐름도이다.
도 51과 비교하면, 단계 S318, S320과 S322 대신, 단계 S319에서 처리 연산이 개시되는 구성으로 되어 있다.
또한, 여기서 제 1 레지스터(84)의 구성을 듀얼포트로 하여 판독과 기록을 동시에 실행할 수 있게 하거나 밴드 폭을 2배로 해 두면, 실시예 4에서 설명한 모든 동작과 마찬가지 동작을 실현할 수도 있다.
또, 레지스터(84)에 저장되어 있던 데이터 D가 논리 회로(74)에서 처리되고, 그 처리 결과를 레지스터(84)에 기록할 때에 데이터 D는 원래 유지되어 있던 장소에 기록된다. 이와 같이 하면, 실시예 4에서는 제 1 및 제 2 레지스터가 개별적으로 어드레스 카운터를 갖는 구성으로 되어 있었던 데 비해, 실시예 5에서는 어드레스 카운터를 1개로 할 수 있다.
또, 레지스터(84)에 연산의 최소 단위 데이터가 저장된 시점에서 처리를 개시하는 경우에는 도 50에 도시된 카운트 CT2에 대응하는 데이터가 처리되고, 처리 결과가 카운트 CT2를 기준으로 하여 본래의 장소에 기록되도록 구성할 수도 있다.
또한, 실시예 5의 구성에서도 실시예 4의 구성과 마찬가지로 레지스터-DRAM 전송 모드를 이용하는 것에 의해서, 다른 칩에 대해서 버스를 개방함으로써 버스의유효 이용을 도모하는 것이 가능하다.
(실시예 5의 변형예 1)
도 67은 실시예 5의 변형예 1에 있어서 레지스터(84)와 논리 회로(74) 사이의 데이터 전송 처리를 설명하기 위한 개념도이다.
도 67을 참조하면, 논리 회로(74)는 연산 처리 중에 레지스터(84)로부터 다음의 데이터를 선(先)판독해 두는 것으로 한다. 이러한 처리를 실행하면, 예컨대, 시각 t1∼t2의 연산 처리 기간 중에 레지스터(84)의 내용을 판독하고 있으므로, 연산 처리가 종료된 시각 t3에서 즉시 처리 결과의 데이터를 레지스터(84)에 기록하여 데이터를 출력할 수 있게 된다.
(실시예 5의 변형예 2)
도 68은 실시예 5의 변형예 2에 있어서 레지스터(84)에서 데이터 출력까지의 경로를 설명하기 위한 개념도이다.
레지스터(84)와 I/O 버퍼(52) 사이에 선 판독 래치(88)를 마련하는 구성으로 하고 있다. 즉, 논리 회로(74)에서의 처리가 종료되면, 선두의 연산 결과에 대해서는 레지스터(84)로부터 선 판독 래치 회로(88)에 미리 선 판독하여 유지해 두는 것으로 한다.
레지스터(84)에서 데이터 입출력 단자(14)로의 데이터 출력의 타이밍은, 예컨대, 범용의 SDRAM과 동일한 타이밍일 필요가 있다. 이러한 구성으로 하면, 외부명령을 접수하고 나서 데이터를 데이터 입출력 단자(14)로 출력했다고 해도 데이터 출력의 타이밍은 지연되지 않는다.
(실시예 5의 DRAM-레지스터 동작 모드)
도 69는 실시예 5에 있어서 DRAM에 미리 저장된 데이터를 논리 회로(74)에서 암호화 처리하여 외부로 출력하는 동작 모드, 즉 「DRAM-레지스터 동작 모드」를 설명하기 위한 개념도이다.
단, 레지스터(84)를 거쳐서 논리 회로(74)가 데이터의 송수신을 하는 점을 제외하고는 도 56의 동작과 마찬가지이다.
도 70은 도 69에서 설명한 동작을 더욱 자세하게 설명하기 위한 흐름도이다.
도 57과 비교하면, 단계 S342와 단계 S356이 생략되고, 단계 S360 대신에 단계 S360′에서는 레지스터(84)로부터 데이터의 판독이 실행된다.
이상과 같은 처리를 실행함으로써, 처리 결과를 제 1 레지스터(84)에서 외부로 전송할 수 있다.
단, 여기서도 레지스터(84)를 듀얼포트로 구성하여 기록과 판독을 동시에 실행할 수 있게 하거나 밴드 폭을 2배로 해 두면, 실시예 4와 마찬가지 동작을 실현할 수도 있다.
또, 실시예 4와 마찬가지로 레지스터-DRAM 전송 모드를 이용함으로써 대기 전류를 대폭 삭감하는 것이 가능하다.
(실시예 6)
다음에, 도 45에 도시한 논리 내장 DRAM(130) 또는 도 61에 도시한 논리 내장 DRAM(132)에 대해서 외부로부터 자동 리프레시 명령이 인가된 경우라도 암호화 처리에 지장을 주지 않는 구성에 대해서 설명한다.
우선, 예컨대, 도 45에 도시한 구성에 있어서 어드레스 카운터(42b)는 행어드레스 카운터를 각 뱅크마다 구비하고 있는 것으로 한다.
도 71은 이러한 구성에 있어서 자동 리프레시의 내부 명령을 생성하는 회로의 구성을 도시한 블럭도이다.
외부로부터 인가된 자동 리프레시 명령은 AND 회로(402), (404), (406) 및 (408) 각각의 한쪽 입력에 인가된다.
한편, AND 회로(402∼408)의 다른쪽 입력에는 어떠한 뱅크가 암호 처리용의 뱅크로 지정되어 레지스터와의 사이에서 데이터의 송수신을 하는지를 나타내는 신호 CONT[0]∼CONT[3]이 인가된다. 예컨대, DRAM부가 암호 처리용으로 지정되어 있을 때에는 [CONT[0], …, CONT[3]]=[1, 1, 1, 1]인 것으로 한다.
한편, 암호 처리용의 뱅크가 뱅크 #0인 경우에는 [CONT[0], …, CONT[3]]=[0, 1, 1, 1]인 것으로 한다. 이 때는 자동 리프레시의 내부 명령도 뱅크 #1∼#3에 대한 신호 AREF1∼AREF3은 활성화되지만, 뱅크 #0에 대한 신호 AREF0은 활성화되지 않는다. 이것에 의해서, 암호화 처리용으로 지정되어 있는 뱅크는 외부로부터의 자동 리프레시 명령의 영향을 받지 않게 된다.
자동 리프레시 명령이 인가된 것을 어느 하나의 레지스터에 기억해 두는 것으로 하면, 암호 처리가 종료된 후에 뱅크 #0에 대해서만 자동 리프레시를 실행하면 좋다.
(실시예 7)
논리 내장 DRAM(130), (132) 등은 또 저소비 전력화를 도모하기 위해서, 이하에 설명하는 것과 같은 기능을 더 부가하는 것이 가능하다.
즉, 우선 첫째로는 「부분 리프레시 모드」의 지정을 실행하게 할 수 있다.
즉, 레지스터 내로의 지정에 의해, 셀프 리프레시 모드 시에 리프레시할 메모리 공간을 뱅크단위로 하여 실행할 수 있는 것으로 하는 것이다. 이 경우, 기본적으로는 실시예 6과 마찬가지인 구성이 마련되어 있고, 셀프 리프레시 명령의 내부 명령도 뱅크마다 생성되는 것으로 하면 좋다.
또, 비파워 다운 모드 시의 스탠바이 전류의 저감을 도모하기 위해서, 이하에 설명하는 것과 같은 「저 파워 모드」의 설정을 실행할 수 있도록 한다.
도 72는 이러한「저 파워 모드」를 설명하기 위한 타이밍 도이다.
또한, 「저 파워 모드」로의 엔트리는 모드 레지스터 설정 명령(MRS 명령) 입력 시에 할당된 특정 어드레스를 입력하거나 도 2에서 설명한 바와 같은 논리 제어공간을 할당함으로써 제어된다.
도 72를 참조하면, 시각 t0에 있어서 외부 클럭 신호 Ext.CLK의 활성화 에지에 있어서 칩 선택 신호 Ext.CS가 활성화("L"레벨)됨과 동시에 프리차지 명령 PRE도 인가된다.
「저 파워 모드」에서는 도 72의 기간 TA와 같이 칩 선택 신호가 "H"레벨이고 뱅크가 비활성이며 또한 데이터의 출력이 실행되지 않는 기간에는 이하에 설명하는 바와 같은 소비 전력의 차단이 실행된다. 즉, 이러한 기간 TA에서는 신호 clkM, clkL은 모두 비활성이며, 신호 /RAS, /CAS, /WE, ADD의 초단 입력 버퍼도 비활성이다.
도 73은 이러한「저 파워 모드」에서의 입력 버퍼(40) 또는 입력 버퍼(46)의 제어를 실행하는 회로 구성을 도시한 도면이다.
즉, 외부 클럭 신호 Ext.CLK는 초단 입력 버퍼(500)에 인가된 후 신호 EN에 의해 활성화되는 AND 회로(502)를 거쳐서 내부 클럭 발생 회로(44)에 인가된다. 한편, 초단 입력 버퍼(500)의 출력은 직접 다음 단 버퍼(504)를 거쳐서 신호 CLKcs로서 칩 선택 신호 입력 버퍼에 인가된다.
칩 선택 신호 입력 버퍼는 신호 Ext.CS를 받는 초단 버퍼(510), 신호 CLKcs에 의해 제어되는 전송 게이트(512), 전송 게이트(512)의 출력을 유지하고 신호 CSp2를 출력하기 위한 래치 회로(514), 신호 CSp2와 각 뱅크로의 내부 RAS신호의 논리합 연산 결과의 신호 RASOR을 받아 신호 EN을 출력하는 OR 회로(516)를 구비한다.
입력 버퍼 회로(40), (46)에 있어서 칩 선택 신호와 신호 CKE 이외의 명령 신호인 신호 /RAS, /WE, /CAS 또는 어드레스 신호 Add를 받는 논리 게이트(520)는 한쪽 입력에 이들 신호 중 대응하는 어느 하나를 받고 다른쪽 입력에 신호 EN의 반전 신호 /EN을 받는 NOR 회로이다.
도 74는 도 73에 도시한 회로의 동작을 설명하기 위한 타이밍 도이다.
시각 t0에서, ACT 명령이 인가되면, 신호 EN이 활성화되어 논리 게이트(520)는 활성 상태로 된다.
이것에 대해서, 시각 t2에서, 칩 선택 신호 Ext.CS가 활성화되어 프리차지 명령 PRE가 인가되면, 신호 EN은 시각 t3에서 비활성화되어 논리 게이트(520)도 비활성 상태로 된다. 또, 외부 클럭 신호 Ext.CLK가 내부 클럭 발생 회로(44)에 인가되지 않아, 내부 클럭 신호 clkM이나 clkL은 생성되지 않는다. 단, 프리차지 명령 입력 후에도 데이터를 출력 중인 경우에는 신호 clkM은 데이터 출력 기간 중에는 동작하고 있다.
따라서, 「저 파워 모드」에서의 소비 전력은 저감되게 된다.
(실시예 8)
도 75는 인터넷 상의 안전 데이터 통신의 처리를 간단히 설명하기 위한 도면이다.
① 클라이언트 측으로부터 안전 사이트를 클릭한다.
② 이것에 대해서, 호스트 측(서버 등)에서는 서버의 인증서의 송부를 실행한다. 서버의 인증서에는 증명서의 일련 번호와 유효 기한, 서버의 공개키, 인증국에 의한 전자 서명도 첨부된다. 여기서, 전자 서명이라는 것은 인증국의 메시지 다이제스트(MD)를 인증국의 개인키(비밀키)로 암호화한 것이다.
③ 계속해서, 클라이언트 측에서는 서버의 인증을 실행한다.
그 수속은 이하와 같다.
우선, 1) 인증국의 공개키로 메시지 다이제스트를 복호화한다(*).
인증국의 공개키는 브라우저에 일반적으로는 편입되어 있다.
2) 인증서의 메시지 다이제스트를 계산하고, 복호화한 메시지 다이제스트와 일치하는지 체크를 실행한다.
3) 서버의 공개키가 입수된다.
이것에 의해서, 예컨대, SSL(Security Socket Layer)에서의 접속이 개시된다. 이번에는 클라이언트 측으로부터 서버에 대해서 액세스를 인정받기 위한 처리를 실행한다.
예를 들면, 사용자 ID, 패스워드 등을 서버의 공개키에 의해 암호화한 후에 호스트 측(서버 측)에 대해서 송신한다(*).
여기서, 클라이언트 측도 인증서를 취하고 있으면, 상술한 서버 측과 동일한 작업을 하는 경우도 있다.
④ 계속해서, 호스트 측은 송신되어 온 사용자 ID나 패스워드를 이용하여 클라이언트의 인증을 실행한다.
즉, 서버의 비밀키에 의해 사용자 ID나 패스워드를 복호화함으로써 인증 처리를 실행한다.
⑤ 클라이언트 측은 비밀키 암호 방식의 선택을 실행한다.
1) 사용 가능한 비밀 암호 방식을 알리고 난수와 현재 시각을 호스트 측에 대해서 송신한다.
⑥ 호스트 측에서는 비밀키 암호 방식을 결정하고, 1) 어떤 비밀 암호 방식으로 했는지를 클라이언트 측에 알리고, 2) 난수와 현재 시각을 취득한다.
⑦ 클라이언트 측에서는 비밀키의 베이스로 되는 난수를 발생시킨다.
발생된 난수를 서버의 공개키로 암호화한 후에 서버에 대해서 송신한다(*).
⑧ 또, 클라이언트 측에서는 클라이언트→서버의 비밀키를 호스트 측으로 전송하기 위해서, 이 비밀키를 서버의 공개키로 암호화하여 송신한다(*).
⑨ 호스트 측에서는 클라이언트→서버의 비밀키를 입수하기 위해서, 서버의 개인키(비밀키)로 복호화 처리를 실행한다.
⑩ 클라이언트 측은 필요한 데이터를 암호화하여 송신한다. 이 때, 비밀키에 의한 암호화를 실행한다(*). 예컨대, 트리플 DES방식 등을 이용한다.
⑪ 호스트 측에서는 ⑨에서 얻어진 비밀키로 데이터의 복호화를 실행한다.
한편, 서버 측에서도 서버→클라이언트의 비밀키(섹션키)를 전송하기 위해서, 이 비밀키를 클라이언트의 공개키로 암호화하여 전송한다.
클라이언트는 서버→클라이언트의 비밀키를 클라이언트의 개인키(비밀키)로 복호화함으로써 입수한다(*).
호스트 측은 이렇게 하여 얻어진 서버→클라이언트의 섹션키를 이용하여 데이터를 암호화해서 클라이언트에 대해서 송신한다.
클라이언트에서는 데이터를 ⑨′에 의해서 얻어진 섹션키에 의해서 복호화한다.
이상 설명한 바와 같은 데이터 통신에 있어서, (*)로 나타낸 처리를 본 발명에 따른 반도체 집적 회로 장치(1)나 논리 내장 DRAM 등에 의해 실행하는 것이 가능하다.
또한, 암호화 처리 등을 실행한 후의 데이터를 제 2 레지스터(86)에 저장해 두고, 이 제 2 레지스터로부터 판독하도록 하면, 즉 (레지스터-레지스터 동작 모드)로 해 두면, DRAM으로는 일체 액세스하는 일이 없으므로 마이크로 컴퓨터(90)로부터는 DRAM의 제어는 불필요하다. 또, 처리 중에 DRAM의 액세스나 리프레시 요구가 있어도 그대로 처리를 실행하는 것이 가능하다.
또, 비밀키 방식에서는 64비트 단위로 암호화를 실행하지만, 입력 데이터가 64비트 미만인 경우에는 임의의 규정에 따라서 패딩을 할 필요가 있다. 이 경우, 최종 데이터의 직전까지는 반도체 집적 회로 장치(1) 내지 논리 내장 DRAM(30), (130) 등에 의해 처리하고, 최종 데이터의 암호화 처리만은 마이크로 컴퓨터 측에서 실행하는 것으로 한다.
왜냐하면, 어느 정도의 패딩을 실행할 것인지는 데이터에 의해서 적절히 변경되는 것이므로, 이 부분은 마이크로 컴퓨터(90) 측에서 처리하는 편이 시스템으로서는 보다 간편한 구성으로 할 수 있기 때문이다.
또, 반도체 집적 회로 장치, 논리 내장 DRAM에서는 2종류 이상의 키를 유지할 수 있도록 구성해 두는 것이 가능하다. 왜냐하면, 인증국과 서버의 2종류에서 키를 구분해서 사용하는 것과 같은 처리가 실행되므로, 복수개의 키를 동시에 유지해 두는 것으로 하면, 암호 처리 시에 이 키를 구분해서 사용함으로써 그 때마다 키를 다시 로드하는 것과 같은 처리를 불필요하게 할 수 있기 때문이다.
또한, 이상의 설명에서는 메모리부와 함께 반도체 집적 회로 장치에 탑재되는 논리 회로의 처리로서 암호화 처리를 주로 예로 들어 설명해 왔지만, 본 발명은 이러한 경우에 한정되는 것이 아닌 것을 확인적으로 강조해 둔다. 논리 회로가 실행하는 처리는, 예컨대, 복호 처리여도 좋고, 더 나아가서는 화상 처리와 같은 것이어도 좋다.
(실시예 9)
실시예 1의 도 21 내지 도 31에서 설명한 바와 같이, 본 발명에 따른 논리 내장 DRAM에서는 DRAM부의 동작을 제어하기 위한 클럭 신호 clkM이 비교적 저주파로부터 비교적 고주파의 범위에 걸쳐 동작하는 경우가 존재한다.
이 때, 클럭 신호 clkM이 저속으로 동작하는 경우에도 고속 동작의 경우와 마찬가지로 클럭 수에 따른 타이밍으로 DRAM의 동작을 제어하는 것으로 하면, 불필요한 동작 마진으로 인해 DRAM부의 성능을 해당 클럭 신호의 주파수에 비해 불필요하게 저하시키는 경우가 존재한다.
이하의 설명에서는 이와 같이 비교적 클럭 신호 clkM이 저속으로 동작하는 경우에도 DRAM의 동작을 고성능으로 유지하는 것이 가능한 논리 내장 DRAM의 구성 및 동작에 대해서 설명하기로 한다.
(열 동작의 인터록)
도 76은 본 발명의 실시예 9에 따른 논리 내장 DRAM의 구성을 설명하기 위한개략 블럭도로서, 실시예 4의 도 45와 대비되는 도면이다.
단, 실시예 9에 따른 논리 내장 DRAM(1000)의 구성은 DRAM부의 제어를 그 특징으로 하기 때문에, 이하의 설명에서 명확하게 되는 바와 같이, 예컨대, DRAM부의 제어에 관한 구성은 실시예 5의 도 61에 도시한 논리 내장 DRAM(132)에서도 적용할 수 있는 것이다.
더 나아가서는, DRAM부의 저속 동작에 있어서의 고성능화에 관련된 구성이기 때문에, 이하에 설명하는 구성은 1칩 상에 DRAM만이 집적되는 구성에도 적용할 수 있는 것이다.
우선, 도 76을 참조하면, 논리 내장 DRAM(1000)의 구성은 도 45에 도시한 논리 내장 DRAM(130)의 구성과 기본적으로 마찬가지이다.
그러나, 도 76에서는 DRAM부의 동작을 위해, 내부 전원 전위를 공급하기 위한 내부 전원 전위 발생 회로(1100), 내부 전원 전위 발생 회로(1100)에 대해서 외부 전원 전위 Ext.Vdd를 공급하기 위한 전원 단자(17) 및 내부 전원 전위 발생 회로(1100)에 대해서 접지 전위 Vss를 공급하기 위한 전원 단자(18)를 명확하게 나타내고 있다.
이하의 설명에서 명확하게 되는 바와 같이, 실시예 9의 논리 내장 DRAM(1000)의 구성은 DRAM 제어 및 어드레스 카운터부(42b)의 구성과 내부 전원 전위 발생 회로(1100)의 구성이 논리 내장 DRAM(130)의 구성과 다를 뿐이므로, 동일 부분에는 동일 부호를 붙이고 그 설명은 반복하지 않는다.
도 77은 도 76에 도시한 구성 중 DRAM 제어부(42b)와 뱅크 #0에 대응하는 열디코더(58.0), 센스 앰프(60.0) 및 I/O 부의 구성을 추출해서 도시한 개략 블럭도이다.
도 77을 참조하면, DRAM 제어부(42b)는 입력 버퍼(40)로부터의 입력을 받아 명령 신호를 생성하기 위한 명령 디코드/제어부(1200), 명령 디코드/제어부로부터의 출력을 받아 센스 앰프(60.0)의 동작을 제어하기 위해 신호 SON 및 신호 SOP를 출력하는 센스 제어부(1202), 센스 제어부(1202)로부터의 출력에 따라서, 나중에 설명하는 바와 같이, 열 인터록 신호 ZCE를 출력하기 위한 열 인터록 신호 생성부(1204), 명령 디코드/제어부(1200)로부터의 제어와 신호 ZCE에 따라서 열디코더 활성화 신호 CDE를 출력하기 위한 열계 제어부(1206)를 포함한다.
열디코더(58.0)에는 어드레스 신호에 따라 생성되는 열어드레스 디코드 신호 CAD와 DRAM 제어부(42b)로부터의 신호 CDE를 받아 뱅크 #0 중 선택된 메모리셀 열을 선택하기 위한 신호 CSL을 출력하는 디코더(1210)가 포함된다.
뱅크 #0 중에는 비트선 쌍 BL, /BL가 마련되고, 행디코더(56.0)에 의해 선택되는 워드선 WL과 비트선 BL의 교점에는 메모리셀 트랜지스터 MTR 및 메모리셀 캐패시터 C를 포함하는 메모리셀 MC가 마련되어 있다.
메모리셀 MC에 저장되어 있는 데이터는 워드선 WL의 활성화에 따라서 비트선 BL에 판독되고, 센스 앰프(60.0)가 활성화 신호 SON 및 SOP에 의해 활성화되는 것에 의해 증폭된다. 센스 앰프(60.0)에 의해 증폭된 데이터는 신호 CSL에 의해 선택되는 I/O 게이트(1220) 중에 포함되는 트랜지스터 TR1, TR2가 각각 신호 CSL에 의해 도통 상태로 되는 것에 의해, 비트선 쌍 BL, /BL에서 I/O선 쌍 LI/O, /LI/O로판독된다.
또, 비트선 쌍 BL, /BL에 대응하여 DRAM 제어부(42b)로부터의 신호 SPR에 따라서 비트선 쌍 BL, /BL의 전위를 등화하여 소정의 전위로 프리차지하기 위한 프리차지 회로(1230)가 마련된다.
도 78은 도 77에 도시한 구성에 있어서, 메모리셀 MC로부터 판독된 데이터가 비트선 쌍에 판독되고, 또 I/O선 쌍 LI/O, /LI/O에 판독되는 동작을 설명하기 위한 타이밍 도이다.
일반적으로, 동기형 DRAM(이하, SDRAM이라고 함)에서는 ACT 명령과 판독 또는 기록 명령인 READ/WRITE 명령 사이를 시간 tRCD에 의해 규정되는 값만큼 분리해 둘 필요가 있다.
예를 들면, 시간 tRCD의 명세값(specification value)이 20㎱인 경우, 클럭 신호 clkM의 주파수가 100㎒에서 동작하는 경우에는 tRCD=2×clkM과 같은 방식으로 클럭 신호 clkM의 주기에 의해서 시간 tRCD가 규정된다.
그러나, 이와 같이 시간 tRCD가 규정되어 있는 경우에 있어서, 클럭 주기가 10㎱보다 조금이라도 짧아지는 경우, 예컨대, tRCD=9.5㎱로 된 경우에는 시간 tRCD로는 상기 명세값 20㎱를 만족시키기 위해서 tRCD=3clkM으로 설정할 필요가 있다.
그러나, READ/WRITE 명령 입력 후에, DRAM부의 판독 또는 기록 동작의 마진에 타이밍의 여유가 있으면, 시간 tRCD에 관련된 동작, 즉 센스 앰프의 동작의 타이밍과 센스 앰프(60.0)에 의해 판독된 데이터를 I/O선 쌍 LI/O, /LI/O에 판독할 때까지의 타이밍을 적절히 조정함으로써, 클럭 신호 clkM의 주기가, 예컨대, 상술한 예와 같이 9.5㎱로 된 경우에도 시간 tRCD를 2클럭 그대로 유지할 수 있게 된다.
즉, 도 77에서 설명한 신호 ZCE의 타이밍을 조정하면, 이하에 설명하는 바와 같이, DRAM부의 동작을 고성능화할 수 있게 된다.
도 78을 참조하면, 시각 t0에서의 클럭 신호 clkM의 활성화의 타이밍에서는 ACT 명령이 입력된다.
따라서, 시각 t1에서는 워드선 WL의 레벨이 활성 상태로 되어 메모리셀 MC에서 비트선 BL로 데이터가 판독된다. 계속해서, 시각 t0에서의 ACT 명령의 활성화에 따라서 시각 t2에서는 센스 제어부(1202)로부터 출력되는 센스 앰프 활성화 신호 SON이 "H"레벨로 되어 비트선 쌍 BL, /BL에 판독된 전압의 증폭이 실행된다.
계속해서, 시각 t0에 있어서 클럭 신호 clkM이 활성 상태로 되고 나서 2클럭후의 시각 t3에서는 클럭 신호 clkM이 활성화됨에 따라서 판독 명령 READ(이하, 생략하여 RD라고도 함)가 인가된다. 이에 따라서, 명령 디코드/제어부(1200)로부터는 버스트 판독의 기간 중에는 "H"로 되는 신호 RD가 열계 제어부(1206)로 출력된다. 단, 이 시점에서는 열 인터록 신호 ZCE는 "H"레벨로 되어 열계 제어부(1206)로부터 출력되는 신호 CDE의 활성화를 억제한다.
즉, 시각 t3에서는 명령 RD가 인가됨에 따라서 명령 디코드/제어부(1200)로부터는 열계 제어부(1206)에 대해서 신호 CDE를 활성화시키기 위한 신호 RD가 인가되지만, 신호 ZCE가 활성화되고 있는 기간에서는 열계 제어부(1206)는 신호 CDE의 활성화 동작을 개시하지 않는다.
열 인터록 신호 생성 회로(1204)로부터 출력되는 신호 ZCE는 시각 t2에서는 센스 제어부(1202)로부터 출력되는 신호 SON이 활성화되고 나서, 시간 Δt만큼 시간이 경과한 후의 시각 t4에서 "L"레벨로 된다. 이에 따라서, 열계 제어부(1206)로부터 활성화 레벨의 신호 CDE가 출력된다.
바꿔 말하면, 열 인터록 신호 ZCE가 "H"레벨일 때에는 READ 명령(또는 WRITE 명령)이 입력되어도 열계의 동작은 개시되지 않게 된다.
여기서, 도 78에서는 열 인터록 신호 생성부(1204)가 존재하지 않는 경우, 바꿔 말하면 열 인터록 신호 ZCE에 의한 제어가 존재하지 않는 경우의 열 디코드 인에이블 신호 CDE의 활성화가 실행되는 타이밍을 점선으로 나타내고 있다.
열 인터록 신호 ZCE가 존재하지 않는 경우에는 센스 앰프(60.0)에 의한 증폭 동작이 완료되기 전에 선택 신호 CSL이 활성 상태로 되고, 센스 앰프(60.0)에 의해 비트선 쌍 BL, /BL의 전위차가 충분히 다 증폭되기 전에 비트선 쌍 BL, /BL와 I/O선 쌍 LI/O, /LI/O가 접속되어 데이터가 파괴되어 버릴 우려가 있다.
이것에 대해서, 도 78의 실선으로 나타내는 바와 같이, 열 인터록 신호 ZCE가 존재하는 경우에는 센스 앰프(60.0)에 의해 비트선 쌍 BL, /BL의 전위차 레벨의 증폭이 완료된 후에는 신호 ZCE가 "L"레벨로 된 타이밍에서 열 디코드 인에이블 신호 CDE가 "H"레벨로 된다.
따라서, 인터록 신호 생성부(1204)를 마련함으로써, 클럭 신호 clkM의 클럭 주기가 10㎱보다 조금 짧아진 경우에도, 시간 tRCD는 tRCD=2×clkM으로 유지할 수 있게 된다.
판독 동작 또는 기록 동작이 버스트 동작으로 실행되는 경우에는 버스트 판독 또는 버스트 기록이 실행되는 2개째 이후의 데이터에 대해서는 클럭 신호 clkM의 활성화 에지를 기준으로 하여 열 디코드 인에이블 신호 CDE가 활성화되는 것으로 하면 좋다.
도 78에서는 시각 t5에서 2개째의 데이터에 대한 신호 CDE의 활성화가 시각 t5에 있어서의 클럭 신호 clkM의 활성화에 따라 실행되는 것이 도시되어 있다.
버스트 동작에서는 더욱 많은 데이터의 판독 또는 기록이 실행되는 경우에도 2개째 이후의 데이터에 대해서는 마찬가지이다.
또, 시각 t6에서 클럭 신호 clkM이 활성화됨에 따라서 프리차지 명령 PRE가 인가된 경우에는 프리차지 동작이 개시되고, 그에 따라서 신호 RD는 "L"레벨로 되고 또한 열 인터록 신호 ZCE는 "H"레벨로 리셋된다.
또한, 이상의 설명에서는 시간 tRCD의 명세값이 20㎱인 경우를 예로서 설명했지만, 본 발명은 이러한 경우에 한정되는 것은 아니다. 따라서, 시간 tRCD의 명세값이 소정의 값으로 설정되어 있는 경우, 클럭 신호 clkM의 주기가 이 명세값의 정수 분의 1보다 조금이라도 작아진 경우에 대해서도 마찬가지로 적용할 수 있게 한 것이다.
도 79는 열계 제어부(1206)의 구성을 도시한 도면이다.
도 79를 참조하면, 열계 제어부(1206)는 신호 ZCE를 받는 지연 회로 DL01, 지연 회로 DL01의 출력을 받아 반전시키는 인버터 INV01, 인버터 INV01의 출력과 신호 ZCE를 받는 NOR 회로 NR01, 신호 ZCE를 반전시키는 인버터 INV02, 인버터INV02의 출력과 클럭 신호 clkM을 받는 AND 회로 GAD01, NOR 회로 NR01의 출력과 AND 회로 GAD01의 출력을 받는 OR 회로 GOR01, OR 회로 GOR01의 출력과 신호 RD를 받아 신호 CDE를 출력하는 AND 회로 GAD02를 포함한다.
신호 ZCE="H"레벨일 때에는 신호 clkM의 레벨에 관계없이 신호 CDE는 비활성(" L" 레벨)이다. 신호 ZCE의 하강에 따라서 지연 회로 DL0의 지연 시간에 대응하는 펄스 폭의 원 샷 펄스가 신호 CDE로서 출력된다. 상술한 바와 같이, 신호 RD는 버스트 판독 기간 중에는 "H"레벨이므로, 신호 ZCE가 "L"레벨인 기간은 클럭 신호 clkM이 신호 CDE로서 출력된다.
(자동 프리차지에 의한 기록(Write-with-Auto precharge) 동작 시의 고성능화)
도 80은 종래의 자동 프리차지에 의한 기록 동작이 실행되는 경우의 타이밍을 도시한 타이밍 도이다. 도 80에서는 버스트 길이가 2인 경우를 예로서 도시하고 있다.
도 80에서는, 예컨대, 클럭 신호 clkM의 주기 tCLK= 30㎱와 같은 비교적 저속인 시스템에 있어서 버스트 길이가 2인 경우의 자동 프리차지에 의한 기록 동작에 대해서 설명하고 있다.
시각 t0에서는 자동 프리차지에 의한 기록 명령 Write-AP가 입력되면, 2클럭의 기간 동안 기록 동작 중인 것을 나타내기 위한 기준 신호(플래그 신호) WT가 활성 상태로 된다.
그리고, 2클럭 경과 후의 시각 t1에서의 클럭 신호 clkM의 활성화 에지("H"레벨로의 변화 에지)를 기준으로 하여 프리차지 동작이 자동적으로 개시된다.
그 결과, 다음에 ACT 명령이 인가되는 타이밍은 시각 t1에 있어서의 클럭 신호 clkM의 활성화 타이밍으로부터 1클럭 후의 시각 t2의 타이밍인 것이 필요하다.
그러나, 예컨대, 클럭 신호 clkM의 클럭 주기가 충분히 큰 경우에는 프리차지 동작의 개시로부터 다음의 ACT 명령을 인가할 때까지의 시간 여유가 불필요하게 커지는 경우가 있다.
도 81은 도 76에 도시한 논리 내장 DRAM(1000)의 구성에 있어서, DRAM 제어부(42b) 내에 마련되어 기록 동작을 제어하기 위한 구성을 추출해서 도시한 개략 블럭도이다.
도 81을 참조하면, 기록 제어부(1300)는 기록 동작을 제어하기 위한 신호, 예컨대, 기록 드라이버의 활성화 타이밍을 결정하기 위한 신호를 생성한다.
버스트 제어부(1302)는 기록 동작에 있어서, 버스트 기록의 동작을 제어하기 위한 신호를 생성하고, 이 버스트 제어부(1302)의 제어에 따라서 기록 제어부(1300)는 기록 제어 신호를 생성한다.
WT 발생 회로(1304)는 기록 제어부(1300)가 기록 제어 신호를 활성화시키는 것에 응답하여 기록 동작 상태인 것을 나타내기 위한 플래그 신호 WT를 활성 상태로 한다. WT 발생 회로(1304)는 또 버스트 제어부(1302)로부터 출력되는 버스트 기록 동작의 완료를 나타내는 버스트 완료 신호 BEND에 응답하여 신호 WT를 비활성 상태("L"레벨)로 변화시킨다.
행계 제어 회로(1310)는 신호 WT의 비활성화에 응답하여 행계 제어 신호, 예컨대, 프리차지 동작을 활성화시키기 위한 신호 SPR을 출력한다.
도 82는 도 81에 도시한 기록계의 제어 회로의 동작을 설명하기 위한 타이밍 도이다.
도 82에 도시한 동작에서는 기록 동작을 위한 마진 시간 tWR과 프리차지 동작을 실행하기 위한 마진 시간 tRP의 합인 시간 (tWR+tRP)보다 클럭 신호 clkM의 주기 tCLK가 큰 경우에 대해서 설명하고 있다.
시각 t0에서는 자동 프리차지에 의한 기록 동작을 지정하기 위한 Write-AP 명령이 클럭 신호 clkM의 활성화 에지에 응답하여 인가된다.
이에 따라서, 기록 제어 회로(1300)로부터 기록 제어 신호가 출력되고, WT 발생 회로(1304)로부터 출력되는 신호 WT는 "H"레벨로 변화된다. 시각 t2에서의 클럭 신호 clkM의 활성화 에지에 응답하여, 버스트 제어 회로(1302)로부터는 버스트 길이 2인 경우의 버스트 동작 종료를 나타내는 활성 레벨의 버스트 완료 신호 BEND가 출력된다.
WT 발생 회로(1304)에서는 이 신호 BEND의 활성화로부터 시간 tWR만큼 경과한 후의 시각 t3에서는 신호 WT를 비활성 상태("L"레벨)로 한다.
이에 따라서, 행계 제어 회로(1310)는 프리차지 동작을 개시하기 위한 제어 신호 SPR을 출력한다.
시각 t3으로부터 시간 tRP만큼 경과한 후에는 프리차지 동작이 완료됐기 때문에, 시각 t2에서의 클럭 신호 clkM의 활성화 에지에 대해서 다음의 클럭 활성화에지의 시각 t4에서는 ACT 명령을 인가할 수 있게 된다.
따라서, 클럭 신호 clkM이 비교적 저속인 경우에 자동 프리차지에 의한 기록 명령 Write-AP가 인가되고 나서 다음의 ACT 명령을 인가할 때까지의 클럭 수를 짧게 할 수 있게 된다.
또한, 이상의 설명은 자동 프리차지에 의한 기록 동작의 경우에 대해서 설명했지만, 자동 프리차지에 의한 판독 동작에 대해서도 마찬가지 구성을 마련함으로써, 자동 프리차지에 의한 판독 명령 Read-AP가 인가되고 나서 ACT 명령을 인가하는 것이 가능해질 때까지의 클럭 주기를 단축할 수 있게 된다.
(자동 리프레시 동작에 관한 구성)
예를 들면, 종래의 64M-SDRAM의 구성에서는 4뱅크를 동시에 활성시켜 자동 리프레시 동작이 실행된다. 이 때, 1뱅크에 대해서는 4096비트마다 리프레시를 실행하고 있다.
그러나, 동시에 리프레시되는 메모리수가 많아지면, 자동 리프레시 시의 소비 전류값의 피크가 커진다. 따라서, 대용량의 디커플링 캐패시터(decoupling capacitor)를 확보하는 것이 곤란한 시스템에서는 이 전류 피크에 있어서 전원 레벨의 저하가 커져 DRAM이 오동작할 가능성이 높아진다.
도 83은 이러한 리프레시 동작 시의 오동작을 방지하기 위한 자동 리프레시 동작을 제어하는 구성을 설명하기 위한 개략 블럭도이다.
도 83에 도시되는 구성은 도 76에 있어서의 DRAM 제어부(42b)에 포함된다.도 83을 참조하면, 자동 리프레시 카운터(1400)는, 자동 리프레시 동작에 있어서, 리프레시 동작이 실행되는 메모리셀 행을 지정하기 위한 내부 어드레스 신호 QAD[0:10]과 자동 리프레시 동작 모드에서 자동 리프레시를 실행하는 뱅크를 지정하기 위한 신호 QBA[0:1]을 출력한다.
자동 리프레시 카운터(1400)는 어드레스 신호 QAD[0:10]을 생성하기 위한 리프레시 어드레스 카운터(1410)와 리프레시 어드레스 카운터로부터 출력되는 최상위 어드레스 QAD[10]을 받아 리프레시될 뱅크를 지정하기 위해 뱅크 어드레스 QBA[0:1]을 출력하는 리프레시 뱅크 카운터(1420)를 포함한다.
리프레시 뱅크 지정 회로(1430)는 리프레시 뱅크 카운터(1420)로부터의 신호 QBA[0:1]을 받아 모드 레지스터(50)의 제어에 따라서 4개의 뱅크에 각각 대응하는 내부 RAS신호 RAS_A, RAS_B, RAS_C, RAS_D 중 자동 리프레시 동작이 실행될 뱅크에 대응하는 내부 RAS를 활성 상태로 한다.
예를 들면, 모드 레지스터(50) 중에서의 지정에 따라서 4개의 뱅크에 대응하는 내부 RAS가 전부 동시에 활성화되는 경우나 2뱅크마다 활성화되는 경우나 1뱅크마다 활성화되는 동작이 지정된다.
셀프 리프레시 타이머(1440)는 리프레시 뱅크 지정 회로(1430)가 출력하는 내부 RAS에 대한 트리거 신호를 인가한다.
따라서, 리프레시 뱅크 카운터(1420)와 리프레시 뱅크 지정 회로(1430)가 마련되는 것에 의해, 4뱅크 동시에 자동 리프레시가 실행되는 모드를 지정할 수 있을 뿐만 아니라 2뱅크마다 또는 1뱅크마다 자동 리프레시를 실행할 수 있게 된다.
또한, 자동 리프레시를 실행할 때의 뱅크 단위를 몇 뱅크마다 할 것인지에 대해서는, 상술한 바와 같이, 어드레스 신호의 조합에 의해 모드 레지스터 설정의 명령을 입력하여 제어할 수도 있지만, 도 76에 도시한 논리 내장 DRAM에서는 특별히 할당된 어드레스 공간으로 액세스함으로써 동시에 리프레시 동작이 실행될 뱅크를 지정할 수도 있다.
또한, 이상의 설명에서는 뱅크단위로 동시에 리프레시될 영역을 지정하는 구성이었지만, 예컨대, 동시에 4뱅크에 자동 리프레시가 실행되는 경우에도 1뱅크 당 리프레시되는 메모리 수를 절반으로 하거나 또는 1/4로 감소시키는 것에 의해서도 마찬가지로 전류 피크를 억제하는 것이 가능하다.
도 84는 도 83에서 설명한 자동 리프레시 동작에 있어서 전류 피크의 삭감 효과를 설명하기 위한 도면이다.
즉, 동시에 4뱅크에 자동 리프레시 동작을 실행하는데 대해서 동시에 2뱅크 또는 1뱅크마다 자동 리프레시를 실행하는 것으로 하면, DRAM에 있어서의 동작 전류의 피크값을 순차적으로 저감해 가는 것이 가능해진다.
또한, 이상의 설명에서는 셀프 리프레시 타이머(1440)의 주기 T0도 동시에 리프레시되는 메모리 수에 따라 변화시킨다.
예를 들면, 동시에 4뱅크에 실행하는 경우의 주기가 T0이면, 동시에 2뱅크인 경우에는 그 주기를 T0/2로 한다. 또, 1뱅크마다 자동 리프레시를 실행하는 경우에는 그 주기를 T0/4로 한다.
이와 같이 하면, 동시에 자동 리프레시를 하는 뱅크의 개수를 저감한 경우라도 개개의 메모리셀에 대해서 보면 리프레시 동작이 실행되는 주기는 실질적으로 동일한 시간 간격으로 할 수 있다.
(전원 차단 모드의 구성)
도 85는 도 76에 도시한 구성 중 내부 전원 전위 발생 회로(1100)에 관한 구성을 도시한 개략 블럭도이다.
이하에 설명하는 바와 같이, 도 85에 도시한 내부 전원 전위 발생 회로(1100)의 구성에서는 대기 동작 시의 소비 전류를 저감할 수 있게 된다.
나중에 설명하는 바와 같이 외부 제어 신호의 조합에 의해 전원 차단 모드로 들어간 경우, DRAM 제어부(42b)로부터 출력되는 신호 SCUT가 "H"레벨로 설정되는 것으로 한다.
도 85를 참조하면, 내부 전원 전위 발생 회로(1100)는 기준 전위 VBIASL을 생성하기 위한 정전류원(1500), 정전류원(1500)으로부터의 출력 VBIASL을 받아 제 1 기준 전위를 발생시키기 위한 기준 전위 발생 회로(1510), 기준 전위 발생 회로(1510)의 출력을 마이너스 입력 노드로 받는 비교 회로(1512), 외부 전원 전위 Ext.Vdd와 메모리셀 어레이용 전원 전위 Vccs를 공급하기 위한 노드 N3 사이에 마련되고, 게이트가 비교 회로(1412)의 출력 노드 N1에 결합되는 P채널 MOS트랜지스터 TP11을 구비한다. 노드 N3은 비교 회로(1512)의 플러스 입력 노드에 결합된다.
내부 기준 전위 발생 회로(1100)는, 또한 정전류원(1500)의 출력을 받아 제 2 기준 전위를 생성하기 위한 기준 전위 생성 회로(1520), 기준 전위 생성회로(1520)로부터 출력되는 제 2 기준 전위를 마이너스 입력 노드에 받는 비교 회로(1522), 외부 전원 전위 Ext.Vdd와 DRAM부의 주변 회로에 대해서 공급되는 전위 Vccp를 출력하기 위한 노드 N4 사이에 마련되고, 게이트가 비교 회로(1422)의 출력 노드 N2에 결합되는 P채널 MOS트랜지스터 TP12, 노드 N2와 접지 전위 사이에 마련되고, 게이트에 신호 SCUT를 받는 N채널 MOS트랜지스터 TN11을 구비한다. DRAM부의 주변 회로는 메모리셀 어레이의 선택 동작이나 상기 선택 동작의 제어를 실행한다.
또한, 비교 회로(1512)는 게이트에 신호 SCUT를 받는 트랜지스터 TP21을 거쳐서 전원 전위 Ext.Vdd가 공급되고, 게이트에 신호 SCUT의 반전 신호인 신호 /SCUT를 받는 N채널 MOS트랜지스터 TN21을 거쳐서 접지 전위가 공급되는 것으로 한다.
또, 노드 N1과 전원 전위 Ext.Vdd 사이에는 게이트에 신호 /SCUT를 받는 P채널 MOS트랜지스터 TP34가 마련된다. 신호 /SCUT가 "L"레벨로 되면, 트랜지스터 TP34가 도통 상태로 되어 트랜지스터 TP11의 게이트 전위를 "H"로 하고, 트랜지스터 TP11을 차단 상태로 한다.
마찬가지로 해서, 비교 회로(1522)에는 게이트에 신호 SCUT를 받는 트랜지스터 TP21을 거쳐서 전원 전위 Ext.Vdd가 공급되고, 게이트에 신호 /SCUT를 받는 트랜지스터 TN22를 거쳐서 접지 전위가 공급된다.
또, 정전류원(1500)으로부터 출력되는 신호 VBIASL을 게이트에 받는 트랜지스터 TN31이 정전류원으로서 동작하여 회로(1550)로 정전류를 공급하고 있는 것으로 한다.
또한, 회로(1550)는 정전류원(1500)으로부터 출력되는 정전위 VBIASL에 따라서 정전류가 공급되는 회로이면, 내부 전원 전위 발생 회로(1100) 내의 회로에 한정되지 않고 DRAM부의 주변 회로에서 동작하는 회로여도 좋다.
이와 같은 정전류원(1500)으로부터 공급되는 기준 전위 VBIASL이 공급되는 노드 N5와 접지 전위 사이에는 신호 SCUT를 게이트로 받는 N채널 MOS트랜지스터 TN32가 마련되어 있는 것으로 한다.
내부 전원 전위 발생 회로(1100)는, 또한 기판 전위 Vbb를 발생하기 위한 Vbb 발생 회로(1600), 기판 전위를 모니터링하여 Vbb 발생 회로(1600)를 제어하기 위한 검지기(detector)(1610), 접지 전위와 Vbb 발생 회로(1600)의 출력 노드 사이에 마련되고, 또한 게이트에 접지 전위를 받는 P채널 M0S트랜지스터 TP33, 외부 전원 전위 Ext.Vdd보다 승압된 전위, 예컨대, 워드선의 활성화 전위 등에 이용되는 승압 전위 Vpp를 발생하기 위한 Vpp 발생 회로(1630), 승압 전위 Vpp의 레벨을 모니터링하여 Vpp 발생 회로(1630)를 제어하기 위한 검지기(1640), Vpp 발생 회로의 출력 노드와 전원 전위 Ext.Vdd 사이에 마련되고 게이트에 전위 Ext.Vdd를 받는 N채널 MOS트랜지스터 TN41을 구비한다.
또, 내부 전원 전위 발생 회로(1100)는 외부 전원 전위 Ext.Vdd와 접지 전위를 받아 동작하고 메모리셀 MC의 셀 플레이트(메모리셀 캐패시터 C의 대향 전극 전위)를 공급하기 위한 셀 플레이트 전위 발생 회로(1650)와 비트선 쌍의 이퀄라이즈 전위 Vb1을 생성하기 위한 비트선 이퀄라이즈 전위 생성 회로(1660)를 구비한다.
다음에, 전원 차단 모드의 동작에 대해서 설명한다.
이상 설명한 회로는 비교 회로(1512), (1522)뿐만 아니라 제 1 및 제 2 기준 전위 발생 회로(1510), (1520), 검지기(1610), (1540) 및 회로(1550)는 신호 SCUT의 활성화에 따라 비활성 상태로 된다. 노드 N1은 트랜지스터 TP34가 도통 상태로 되므로, 트랜지스터 TP11이 차단 상태로 되기 때문에 비활성으로 된다.
이 때, 트랜지스터 TN32도 도통 상태로 되어 노드 N5는 접지 레벨로 된다.
다음에, 신호 SCUT의 활성화에 따라 Vbb 발생 회로(1600), Vpp 발생 회로(1630), 셀 플레이트 전위 발생 회로(1650), 비트선 이퀄라이즈 전위 발생 회로(1660)가 비활성 상태로 된다.
이상과 같이, 전원 차단 모드로 들어가 내부 전원 전위 발생 회로(1100) 중의 회로가 비활성 상태로 되면, 각각의 전위 레벨은 기판에 존재하는 접합 누설 등에 의해 그의 레벨이 저하해 간다.
단, Vbb 발생 회로(1600)의 출력 노드의 전위 레벨은 트랜지스터 TP33의 임계값을 Vth1이라고 하면, 임계값 Vth1에 의해 규정되는 레벨로 수속되어 간다. 또, Vpp 발생 회로(1530)의 출력 노드의 전위 레벨은 트랜지스터 TN41이 존재하기 때문에, 이 트랜지스터 TN41의 임계값 전압을 Vth2라고 하면 레벨 (Ext.Vdd-Vth2)의 레벨로 수렴되어 간다.
또, 주변 회로용의 전원에 대해서는 비교 회로(1522)가 비활성으로 된다. 그러나, P채널 MOS트랜지스터 TP12의 게이트 전위는 트랜지스터 TN11이 도통 상태로 되어 접지 전위로 되기 때문에, 전위 Vccp는 전원 전위 Ext.Vdd로 된다.
이상과 같은 구성으로 해 두면, 관통 전류의 경로가 차단되어 소비 전류가 저감되고, 또한 전위 Vpp나 전위 Vccp는 활성 레벨을 유지하고 있기 때문에, 전원 차단 모드로 들어간 후에도 특정 명령을 입력함으로써 전원 차단 모드에서 빠져나가는 것이 가능해진다.
도 86은 이와 같이 전원 차단 모드로 들어가는 동작(엔트리)과 전원 차단 모드에서 빠져나가는 동작(엑시트(exit))을 설명하기 위한 타이밍 도이다.
시각 t0에서 모드 레지스터 설정 명령 MRS와 이 전원 차단 모드로 엔트리하기 위한 어드레스 V0의 조합을 입력한다.
이에 따라서, 전원 차단을 제어하기 위한 신호 SCUT가 활성화 레벨("H"레벨)로 된다.
신호 SCUT의 활성화에 따라서 내부 전원 전위 발생 회로(1100) 중의 각 회로가 비활성 상태로 된다.
다음에, 시각 t1에서의 클럭 신호 clkM의 상승 에지에 따라서 신호 CKE가 비활성 상태("L"레벨)인 것이 DRAM 제어부(42b)에 캐치(catch)된다. 이 때, DRAM 제어부(42b)는 신호 SCUT를 이미 "H"레벨로 하고 있는 경우에는 클럭 버퍼(44)를 비활성으로 하기 위한 클럭 버퍼 디스에이블 신호 CBDA를 활성 상태("H"레벨)로 한다.
이것에 의해서, 클럭 버퍼 자신도 비활성으로 되어 소비 전류가 한층 더 저감된다.
또, 다른 입력 신호에 대한 버퍼 I/O 버퍼(52)나 입력 버퍼(40), (46) 등도비활성 상태로 된다.
다음에, 전원 차단 모드로부터의 엑시트 동작에 대해서 설명한다.
우선, 시각 t2에서 신호 CKE가 "H"레벨로 되는 것에 따라서 비동기적으로 클럭 디스에이블 신호 CBDA가 "L"레벨로 된다.
이에 따라서, 클럭 버퍼가 활성화된다.
계속해서, 시각 t3에서의 클럭 신호 clkM의 활성화 에지에서는 모드 레지스터 설정 명령과 이 모드에서 빠져나가기 위해서 할당된 어드레스 신호의 입력이 실행된다. 이에 따라서, 신호 SCUT가 "L"레벨로 리셋된다.
전원 차단 모드를 빠져나간 후, 내부 전원이 안정되고 나서 모드 레지스터 설정 명령 이외의 명령 입력이 가능해진다.
예를 들면, 종래의 SDRAM에서는 신호 CKE가 "L"레벨로 된 경우라도 셀프 리프레시 동작 모드로 되어 있지 않으면, 클럭 버퍼(44)가 비활성으로 되는 일은 없다.
이것에 비해, 본 발명에 따른 논리 내장 DRAM에서는, 상술한 바와 같이, 신호 CKE가 "L"레벨로 되었을 때에 전원 차단 모드이면, 클럭 버퍼도 비활성 상태로 되므로 한층 더 소비 전류가 저감되게 된다.
또한, 전원 차단 모드로의 엔트리와 엑시트를 위해 할당된 어드레스는 동일한 어드레스로 할 수도 있다.
또한, 이상의 설명에서는 신호 SCUT가 "H"레벨인 기간 중에는 전위 Vccp가 전위 Ext.Vdd로 되는 경우에 대해서 설명했다. 그러나, 예컨대, 신호 SCUT가 "H"레벨인 기간 중에는 정전류원(1500), 기준 전위 생성 회로(1520) 및 비교 회로(1522)를 동작시켜 전위 Vccp가 원하는 레벨로 제어되는 구성으로 해도 좋다.
도 87은 클럭 버퍼(44) 구성의 일 예를 도시한 회로도이다.
도 87에 도시하는 바와 같이, 클럭 버퍼(44)가 단자(16)와 플러스 입력 노드가 접속되고 마이너스 입력 노드에 기준 전위 VrefI를 받는 비교 회로(1700)를 포함하는 경우, 클럭 버퍼 디스에이블 신호 CBDA가 활성 상태로 되었을 때에 기준 전위 VrefI의 레벨을 신호 CBDA의 레벨에 따라 제어하면 클럭 버퍼를 비활성 또는 활성 상태로 할 수 있다. 비교 회로(1700)의 출력은 버퍼 회로(1702)로부터 내부 클럭 신호 int.CLK로서 출력된다.
도 88은 클럭 버퍼(44)의 다른 회로 구성을 도시한 회로도이다.
도 88에 도시한 구성에서는 클럭 버퍼(44)는 단자(16)로부터의 신호를 플러스 입력 노드에 받고 기준 전위 VrefI를 마이너스 입력 노드에 받는 비교 회로(1700), 단자(16)와 한쪽 입력 노드가 결합되고 다른쪽 입력 노드에 신호 /EN를 받는 NOR 회로(1710), 비교 회로(1700)의 출력과 NOR 회로(1710)의 출력을 받고 내부 클럭 신호 int.CLK를 출력하는 OR 회로(1726)를 구비한다. 클럭 버퍼(44)에서는 비교 회로(1700)는 신호 SCUT를 게이트로 받는 P채널 MOS트랜지스터(1722)를 거쳐서 전원 전위를 받고, 신호 /SCUT를 게이트로 받는 N채널 MOS트랜지스터(1724)를 거쳐서 접지 전위를 받는다. 클럭 버퍼(44)는, 또한 비교 회로(1700)의 출력 노드와 접지 전위 사이에 마련되고 신호 SCUT를 게이트로 받는 N채널 MOS트랜지스터(1728)를 구비한다.
따라서, 신호 SCUT가 "L"레벨인 기간 중에는 비교 회로(1700)를 거쳐서 외부 클럭 신호 Ext.CLK가 입력되고, 전원 차단 모드 중에서 신호 SCUT가 "H"레벨인 기간 중에는 기준 전위 VrefI를 제어하여 비교 회로(1710)를 비활성 상태로 하고, 클럭 신호의 입력은 NOR 회로(1710)를 거쳐서 실행하는 것으로 하면 좋다.
신호 /EN이 "H"레벨인 한, 외부 클럭 신호 Ext.CLK는 NOR 회로(1710)에서 내부로 패치되지 않는다.
이상과 같은 구성으로 함으로써, 논리 내장형 DRAM(1000)이 클럭 신호가 비교적 천천히 한 동작을 실행하는 경우라도 그 성능을 유지하고 또한 소비 전력을 저감할 수 있게 된다.
(실시예 10)
실시예 10의 논리 내장형 DRAM의 구성은 도 76에 도시한 논리 내장형 DRAM(1000)의 구성과 기본적으로는 마찬가지이다.
그러나, 이하에 설명하는 바와 같이, 실시예 10의 논리 내장 DRAM(1000)에서는 입력되는 클럭 주기에 따라서 내부 전원 전압의 레벨을 변경하는 것이 가능한 구성으로 되어 있다.
이러한 구성으로 함으로써, 저속으로 동작해도 좋은 시스템에서는 DRAM부의 내부 동작의 속도를 그것에 맞게 저하시키도록 내부 전압 레벨을 변경함으로써, 클럭 주파수에 있어서 소비 전력의 저하를 도모할 수 있게 된다.
또한, 이하의 설명도 논리 회로와 DRAM이 1칩에 혼재되는 경우에 한정되지않고 DRAM이 1칩에 집적되는 경우에도 적용할 수 있는 것이다.
도 89는 논리 내장 DRAM(1000)이 이용되는 시스템의 구성을 도시한 개념도이다.
마이크로 제어기 유닛 MCU와 클럭 동기식의 논리 내장 DRAM(1000)이 접속되어 있다.
마이크로 제어기 유닛 MCU로부터는 클럭 신호 CLK, 명령 신호 및 어드레스 신호가 인가되고, 마이크로 제어기 유닛 MCU와 논리 내장 DRAM(1000) 사이에서는 데이터의 송수신이 실행된다.
도 90은, 도 89에 도시한 바와 같은 시스템에 있어서, 그 애플리케이션에 따라서 필요한 메모리의 동작 주파수를 도시한 도면이다. 애플리케이션에 따라서 메모리에 요구되는 데이터 전송의 밴드 폭이 다르다. 도 90에서는, 예컨대, 휴대전화 시스템의 경우를 상정하고 있다.
예를 들면, 음성 데이터만을 취급하는 경우에는 DRAM부의 CLK 주파수는 낮게 설정되고, 비디오 신호(주로, 비디오 데이터의 디코드)나 화상 회의(video conference)(주로, 동화상의 인코드)를 처리하는 것과 같은 경우에는 DRAM부의 클럭 주파수를 높게 함으로써 처리 능력을 높인다.
이와 같이, 애플리케이션에 따라서 DRAM이 동작하는 클럭 주파수를 변화시킴으로써 DRAM부의 소비 전력을 억제할 수 있게 된다.
도 91은, 도 90에 도시하는 바와 같이, 클럭 주파수에 따라서 DRAM부의 동작 속도를 변화시킬 수 있는 구성을 설명하기 위한 개념도이다.
도 91을 참조하면, 클럭 생성 회로(44)는 단자(16)에 인가되는 외부 클럭 신호 Ext.CLK의 주파수를 검지하여 제어 신호 Ctrl을 출력하는 주파수 검지 회로(1800)를 구비한다.
내부 전원 전위 발생 회로(1100)는 이 제어 신호 Ctrl에 따라서 출력할 전원 전위의 레벨을 변경한다.
도 91에서는 전원 회로(1100)로부터 전원 배선 Lvc를 거쳐서 논리부로 공급되는 전원 VDCp가 제어되는 구성을 도시하고 있다. 예컨대, 외부 클럭 신호 Ext.CLK의 주파수가 작아질수록 내부 전원 레벨이 낮아지고, 주파수가 높아질수록 내부 전원 레벨이 높아진다.
도 92는 외부 클럭 신호 Ext.CLK에 따라서 내부 전원 전위를 제어하는 다른 구성을 도시한 개략 블럭도이다.
도 91의 경우와 마찬가지로 해서 클럭 생성 회로(44)는 외부 클럭 신호 Ext.CLK의 주파수를 검지하기 위한 주파수 검지 회로(1800)를 구비한다.
내부 전원 전위 발생 회로(1100)는 메모리 어레이부에 대한 전원 전위 VDCs를 생성하기 위한 내부 전원 회로(1810), 메모리 어레이부로 전위 VDCs를 전달하기 위한 전원 배선 Lvc2, 논리 회로로의 내부 전원 전위 VDCp를 생성하기 위한 내부 전원 회로(1820), 논리 회로부로 전위 VDCp를 전달하기 위한 전원 배선 Lvc1을 구비하고 있다.
또한, 외부 클럭 신호 Ext.CLK의 주파수에 따라 내부 전원 전위의 레벨을 제어하는 것은 메모리 어레이부에 대한 전원 전위 VDCs만으로 할 수도 있다.
도 92에 도시한 구성에 있어서도 외부 클럭 신호 Ext.CLK의 주파수에 따라서 내부 전원 레벨 VDCs 및 VDCp의 레벨이 설정된다.
도 93은 도 91 또는 도 92에 도시한 내부 전원 전위의 제어 동작을 설명하기 위한 도면이다. 횡축은 클럭 주파수를 로그 스케일로 나타내고, 종축은 내부 전원 전위 레벨을 나타낸다.
클럭 주파수의 증가에 따라서 내부 전원 전위 레벨이 설정된다. 주파수가 높아지면 내부 전원 레벨이 높아지고, 주파수가 낮아지면 내부 전원 레벨이 낮아진다.
이상과 같이 구성으로 함으로써, 클럭 주파수에 따라 내부 전원 레벨이 변화되고, 클럭 주파수에 따른 속도로 DRAM부나 논리부가 동작하는 것이 가능해지고 또한 저소비 전력화를 도모할 수 있다.
도 94는 도 91 또는 도 92에 도시한 주파수 검지 회로(1800)의 구성을 설명하기 위한 개략 블럭도이다.
도 94를 참조하면, 주파수 검지 회로(1800)는 단자(16)로부터 외부 클럭 신호 Ext.CLK를 받는 클럭 버퍼(1801), 클럭 버퍼의 출력을 받는 직렬로 접속된 지연 회로(1802.1∼1802.4), 클럭 버퍼(1801)의 출력과 지연 회로(1802.1)의 출력을 받는 위상 비교기(1804.1), 클럭 버퍼(1801)의 출력과 지연 회로(1802.2)의 출력을 받는 위상 비교기(1804.2), 클럭 버퍼(1801)의 출력과 지연 회로(1802.3)의 출력을 받는 위상 비교기(1804.3), 클럭 버퍼(1801)의 출력과 지연 회로(1802.4)의 출력을 받는 위상 비교기(1804.4)를 구비한다.
내부 전원 전위 발생 회로(1100)는 위상 비교기(1804.1∼1804.4)로부터 출력되는 신호 Ctrl에 따라서 그 자신이 생성하는 전원 전위 레벨을 변화시킨다.
도 95는 도 94에 도시한 주파수 검지 회로의 동작을 설명하기 위한 타이밍 도이다.
도 95를 참조하면, 시각 t0에서의 외부 클럭 신호 Ext.CLK의 활성화 에지에 각각 응답하여 지연 회로(1802.1∼1802.4)로부터 일정 시간만큼씩 지연시켜 활성화 레벨의 신호 DT1∼DT4가 출력된다.
이 때, 위상 비교기(1804.1∼1804.4)의 동작에 대해서 고려해 보면, 시각 t1에서 외부 클럭 신호 Ext.CLK의 위상과 지연 회로(1802.1∼1802.4) 출력의 위상차를 위상 비교기(1804.1∼1804.4)가 비교하게 된다.
도 95에 도시한 상태에서는 지연 회로(1802.3)의 출력 신호인 DT3보다 클럭 신호 Ext.CLK의 위상은 지연되어 있고, 또한 지연 회로(1802.4)의 출력 신호인 DT4보다 외부 클럭 신호 Ext.CLK의 위상은 지연되어 있게 된다.
이렇게 해서 검지된 위상차에 따라서 내부 전원 전위 발생 회로(1100)의 출력 레벨을 조정하는 것으로 하면 좋다.
가령, 지연 회로(1802.1) 활성화시보다 외부 클럭 신호 Ext.CLK의 위상이 지연되어 있고, 또한 지연 회로(1802.2)의 출력 신호인 DT2의 활성화 시보다 외부 클럭 신호 Ext.CLK의 활성화 시에 위상이 지연되어 있으면, 도 95에 도시한 경우보다 주파수가 빠르게 된다.
도 96은 주파수 검지 회로(1800)에 의해 제어되는 내부 전원 전위 발생회로(1100) 중의 내부 전원 회로의 구성을 설명하기 위한 개략 블럭도이다. 도 96에서는 전위 VDCs와 전위 VDCp를 총칭하여 전위 VDC라고 부르기로 한다.
도 96에 도시한 내부 전원 회로는 주파수 검지 회로(1800)로부터의 제어 신호 Ctrl에 따라서 그 자신이 생성하는 기준 전위를 변화시키는 기준 전위 발생 회로(1850), 기준 전위 발생 회로의 출력을 마이너스 입력 노드로 받는 비교 회로(1860), 비교 회로(1860)의 출력을 게이트로 받고 전원 출력 노드 N10과 외부 전원 전위 Ext.Vdd 사이에 마련되는 P채널 MOS트랜지스터 TP51, 비교 회로(1860)의 출력 노드와 접지 전위 사이에 마련되고, 예컨대, DRAM 제어부(42b)로부터 출력되는 제어 신호 Ctrl0을 게이트로 받는 N채널 MOS트랜지스터 TN51을 구비한다. 노드 N10과 비교 회로(1660)의 플러스 입력 노드가 결합되어 있다.
도 96에 도시한 내부 전원 회로의 동작으로서는 신호 Ctrl0을 "L"레벨로 하여 기준 전위 발생 회로(1850)의 레벨에 따라 내부 전원 전위를 출력하는 노드 N10의 레벨이 제어된다. 단, 고속인 시스템에서는 내부 전원 전위의 레벨을 외부 전원 전위로 고정시킬 수도 있다. 즉, 고속인 시스템에서는 도 96의 트랜지스터 TP51의 게이트의 전위 레벨을 트랜지스터 TN51을 도통 상태로 함으로써, 0V로 고정시키고, 내부 전원 전위 VDC의 레벨을 외부 전원 전위 Ext.Vdd로 하면 좋다.
이상과 같은 구성에 의해, 클럭 주파수에 따라 내부 전원 전위 레벨을 변화시켜 소비 전력을 억제할 수 있게 된다.
도 97은 내부 전원 전위를 제어하기 위한 다른 구성을 도시한 개략 블럭도이다.
도 91 내지 도 96에서는 주파수 검지 회로(1800)를 마련하고, 주파수 검지 회로의 검지 결과에 따라서 내부 전원 전위 발생 회로(1100)가 출력하는 전위 레벨을 변화시키는 것으로 하고 있었다.
이에 대해서, 도 97에서는 모드 레지스터(50)에 외부로부터 명령 신호 및 어드레스 신호를 인가함으로써 내부 전원 회로(1100)에 대한 제어 신호 Ctrl을 제어한다. 신호 Ctrl에 따라서 내부 전원 전위 레벨을 변화시킨다. 그 밖의 구성은 도 91과 마찬가지이다.
예를 들면, 저속, 중속, 고속의 3종류의 동작 모드가 있던 경우에 3종류의 모드 레지스터를 할당하고, 그 모드 레지스터를 제어함으로써 내부 전원 전압 레벨을 제어한다.
예를 들면, 고속 시스템에서는 내부 전원 전압 레벨이 높게 되도록 제어할 수 있다. 또한, 이 경우에도 고속인 시스템에서는 도 96의 트랜지스터 TP51의 게이트의 전위 레벨을 트랜지스터 TN51을 도통 상태로 함으로써 0V로 고정시키고, 내부 전원 전위 VDC의 레벨을 외부 전원 전위 Ext.Vdd로 할 수도 있다.
또한, 도 92에 도시한 것과 마찬가지로 논리부와 DRAM부를 개별적으로 제어하는 구성으로 해도 좋다.
이상과 같은 구성으로 함으로써, 제어 신호에 따라서 생성되는 내부 전원 전위 레벨을 변경할 수 있게 된다.
도 98은 동작 속도 모드가 복수 종류 있는 경우의 메모리 공간 할당의 일 예를 설명하기 위한 메모리 맵이다.
도 98에 도시한 예에서는 저속, 중속, 고속의 애플리케이션용으로 메모리 공간을 미리 분할해 둔다.
예를 들면, 도 98중의 #AC0의 공간에 할당된 애플리케이션은 저속용이며, 그 공간을 액세스한 경우에는 내부 전원 레벨이 낮아지도록 설정되어 있다.
이것에 대해서, 메모리 공간 #AC3은 고속용이며, 이 메모리 공간이 선택됨에 따라서 내부 전원 전위가 높아지도록 설정되어 있다.
메모리 공간 #AC2는 중속용이며, 이 메모리 공간이 선택됨에 따라서 내부 전원 전위가 메모리 공간 #AC0의 경우와 #AC3의 경우의 중간의 값으로 되도록 설정되어 있다.
이러한 메모리 공간의 분류는 모드 레지스터(50)에 의해서 설정하는 것이 가능하다. 또, 이러한 메모리 공간의 분류는 장치의 제조 시에 미리 규정해 두는 것도 가능하다.
또는, 이러한 메모리 공간의 분류를 뱅크마다 할당해 두는 것도 가능하다.
어떠한 경우에도 열어드레스를 하위 어드레스로 할당하고 공간의 최소 단위를 행어드레스로 함으로써, ACT 명령 입력 시의 행어드레스에 의해 저속, 중속, 고속 애플리케이션 중 어느 하나를 판정할 수 있게 된다.
도 99는 도 76에 도시하고 있는 I/O 버퍼(52) 중의 구동 회로의 구성을 설명하기 위한 개략 블럭도이다.
출력 단자 Dout에 대응하여 전류 구동 능력이 작은 드라이버 회로(1900)와 전류 구동 능력이 큰 드라이버 회로(1920)가 마련되어 있다.
전류 구동 능력은 드라이버 트랜지스터의 트랜지스터 크기를 변경함으로써 원하는 값으로 설정할 수 있다.
신호 Sslow가 "H"레벨일 때에는 드라이버 회로(1920)가 비활성화되어 드라이버 회로 전체로서의 구동 능력을 저하시킬 수 있다. 한편, 신호 Sslow가 "L"레벨인 경우에는 드라이버 회로(1900), (1920)의 쌍방이 활성 상태로 된다.
따라서, 클럭 신호 clkM이 주파수가 작고 신호 Sslow가 "H"레벨인 경우에는 드라이버 회로(1920)는 비활성 상태로 된다.
한편, 클럭 신호 clkM의 주파수가 높고 신호 Sslow가 "L"일 때에는 드라이버 회로(1900), (1920)의 쌍방이 활성 상태로 된다.
이것에 의해서, 클럭 신호 clkM의 주파수가 작은 경우에는 작은 구동 능력으로 출력 데이터의 구동을 실행하고, 클럭 신호 clkM의 주파수가 높은 경우에는 높은 구동 능력으로 출력 데이터의 구동을 실행할 수 있게 된다.
이상과 같은 경우에 있어서, 신호 Sslow의 설정은 모드 레지스터(50)에 대한 모드 레지스터 설정 명령에 의해서 전환할 수도 있고, 특정 어드레스 공간을 제어용으로 할당하여 신호 Sslow의 설정을 전환하는 구성으로 할 수도 있다.
도 99에 도시한 구동 회로는 출력될 신호 D0을 받아 반전시키는 인버터 INV10 및 신호 Sslow의 반전 신호와 출력 활성화 신호 En의 논리곱을 출력하는 논리 게이트 회로(1930)를 구비한다.
드라이버 회로(1900)는 드라이브 구동 신호 En을 받는 인버터 INV11, 인버터 INV10의 출력을 한쪽 입력 노드에 받고 다른쪽 입력 노드에 인버터 INV11의 출력을받는 NOR 회로 NR11, NOR 회로 NR11의 출력을 받아 반전시키는 인버터 INV12, 인버터 INV10의 출력을 한쪽 입력 노드에 받고 다른쪽 입력 노드에 신호 En을 받는 NAND 회로 ND11, NAND 회로 ND11의 출력을 받는 인버터 INV13, 전원 전위와 접지 전위 사이에 직렬로 마련되는 P채널 MOS트랜지스터 TP101 및 N채널 MOS트랜지스터 TN101을 구비한다.
트랜지스터 TP101은 인버터 INV12의 출력을 게이트에 받고, 트랜지스터 TN101의 게이트는 인버터 INV13의 출력을 받는다. 트랜지스터 TP101 및 TN101의 접속 노드가 단자 Dout에 접속된다.
드라이버 회로(1920)는 논리 게이트(1930)의 출력을 받는 인버터 INV21, 인버터 INV10의 출력을 한쪽 입력 노드에 받고 다른쪽 입력 노드에 인버터 INV11의 출력을 받는 NOR 회로 NR21, NOR 회로 NR21의 출력을 받아 반전시키는 인버터 INV22, 인버터 INV10의 출력을 한쪽 입력 노드에 받고 다른쪽 입력 노드에 논리 게이트(1930)의 출력을 받는 NAND 회로 ND21, NAND 회로 ND21의 출력을 받는 인버터 INV23, 전원 전위와 접지 전위 사이에 직렬로 마련되는 P채널 MOS트랜지스터 TP201 및 N채널 MOS트랜지스터 TN201을 구비한다.
트랜지스터 TP201은 인버터 INV22의 출력을 게이트에 받고, 트랜지스터 TN201의 게이트는 인버터 INV23의 출력을 받는다. 트랜지스터 TP201 및 TN201의 접속 노드가 단자 Dout에 접속된다.
이상과 같은 구성으로 함으로써, 클럭 주파수에 따라서 출력 버퍼의 소비 전력을 가변으로 하여 가일층 소비 전력의 저감이 가능해진다.
도 100은 도 76에 도시하고 있는 I/O 버퍼(52) 중의 구동 회로의 다른 구성을 설명하기 위한 개략 블럭도이다.
도 100에 도시한 구동 회로는 출력될 신호 D0을 받아 반전시키는 인버터 INV30, 드라이브 구동 신호 En을 받는 인버터 INV31, 인버터 INV30의 출력을 한쪽 입력 노드에 받고 다른쪽 입력 노드에 인버터 INV31의 출력을 받는 NOR 회로 NR31, NOR 회로 NR31의 출력을 받아 반전시키는 인버터 INV32, NOR 회로 NR31의 출력을 받아 소정 시간 지연시키는 지연 회로 DL301, 지연 회로 DL301의 출력, 신호 Sslow, NOR 회로 NR31의 출력 및 신호 /Sslow를 받는 복합 논리 게이트 CG301을 구비한다. 복합 논리 게이트 CG301은 지연 회로 DL301의 출력과 신호 Sslow의 제 1 논리곱과 NOR 회로 NR31의 출력과 신호 /Sslow의 제 2 논리곱 사이의 부정 논리합 연산의 결과를 출력한다.
도 100에 도시한 구동 회로는, 또한 인버터 INV30의 출력을 한쪽 입력 노드에 받고 다른쪽 입력 노드에 신호 En을 받는 NAND 회로 ND41, NAND 회로 ND41의 출력을 받아 반전시키는 인버터 INV42, NAND 회로 ND41의 출력을 받아 소정 시간 지연시키는 지연 회로 DL401, 지연 회로 DL401의 출력, 신호 /Sslow, 인버터 INV42의 출력 및 신호 Sslow를 받는 복합 논리 게이트 CG401을 구비한다. 복합 논리 게이트 CG401은 지연 회로 DL401의 출력과 신호 /Sslow의 제 1 논리합과, 인버터 INV42의 출력과 신호 Sslow의 제 2 논리합 사이의 부정 논리곱의 연산 결과를 출력한다.
도 100에 도시한 구동 회로는, 또한 전원 전위와 접지 전위 사이에 직렬로 접속되는 P채널 MOS트랜지스터 TP301 및 N채널 MOS트랜지스터 TN401, 전원 전위와접지 전위 사이에 직렬로 접속되는 P채널 MOS트랜지스터 TP302 및 N채널 MOS트랜지스터 TN402를 구비한다. 트랜지스터 TP301과 트랜지스터 TN401의 접속 노드가 출력 단자 Dout에 결합되고, 트랜지스터 TP302와 트랜지스터 TN402의 접속 노드도 출력 단자 Dout에 결합된다.
트랜지스터 TP301의 게이트는 인버터 INV32의 출력을 받고, 트랜지스터(401)의 게이트는 인버터 INV42의 출력을 받는다. 한편, 트랜지스터 TP302의 게이트는 복합 논리 게이트 CG301의 출력을 받고, 트랜지스터 TP402의 게이트는 복합 논리 게이트 CG401의 출력을 받는다.
트랜지스터 TP302의 크기는 트랜지스터 TP301의 크기보다 크고, 트랜지스터 TN402의 크기는 트랜지스터 TN401의 크기보다 크다.
도 100에 도시한 구동 회로는 동작 주파수가 느리고 신호 Sslow가 "H"레벨 이, 신호 /Sslow가 "L"일 때에는, 지연 회로 DL301 및 DL401에 의한 지연 시간 분만큼 트랜지스터 TP301 및 TN401이 구동되는 타이밍보다 트랜지스터 TP302 및 TN402가 구동되는 타이밍이 지연된다.
이것에 비해서, 동작 주파수가 빠르고, 신호 Sslow가 "L"레벨이며, 신호 /Sslow가 "H"일 때에는, 지연 회로 DL301 및 DL401에 의한 지연 동작에 관계없이 트랜지스터 TP301 및 TN401이 구동되는 타이밍과 트랜지스터 TP302 및 TN402가 구동되는 타이밍은 거의 동일하게 할 수 있다.
이상과 같은 구성으로 하는 것에 의해서도, 클럭 주파수에 따라서 출력 버퍼의 소비 전력을 가변으로 하여 가일층 소비 전력의 저감이 가능해진다.
상기한 바와 같이, 본 발명은 범용적인 메모리에 대해서 데이터, 어드레스 신호 및 제어 신호를 인가하는 것과 마찬가지 순서(시퀀스)로 신호를 인가하는 것에 의해 내장되는 논리 회로를 제어할 수 있고, 기존의 시스템에 큰 변경을 가할 필요없이 용이하게 제어할 수 있는 것이다. 또한, 메모리 회로와 논리 회로가 혼재되는 반도체 집적 회로 장치에 있어서, 메모리 회로에 기억되는 데이터에 대해서 소정의 논리 연산 처리를 실행한 결과를 외부로부터 취급하기 쉬운 인터페이스를 거쳐 또한 고속으로 송수신할 수 있다.

Claims (3)

  1. 외부로부터 인가되는 제어 신호, 어드레스 신호 및 데이터를 수신하는 단자군과,
    상기 제어 신호, 상기 어드레스 신호 및 상기 데이터를 수신하여, 상기 어드레스 신호에 따라 동작 지시 대상을 배분하는 인터페이스부와,
    상기 어드레스 신호에 의해 특정되는 제 1 및 제 2 영역을 가지며, 상기 어드레스 신호에 의해 상기 제 2 영역이 지정된 경우, 상기 인터페이스부를 거쳐 전달되는 상기 제어 신호 및 상기 어드레스 신호에 따라 상기 데이터의 송수신을 행하는 메모리셀 어레이와,
    상기 어드레스 신호에 의해 상기 제 1 영역이 지정된 경우, 상기 메모리셀 어레이에 저장되어 있는 기억 데이터 또는 상기 인터페이스부를 거쳐 전달되는 상기 데이터 중 어느 하나를 데이터 처리 대상으로 하여, 상기 인터페이스부를 거쳐 전달되는 상기 제어 신호, 상기 어드레스 신호 및 상기 데이터 중 적어도 어느 하나에 따라 데이터 처리를 행하고, 그 데이터 처리의 결과를 상기 메모리셀 어레이에 저장하는 논리 회로
    를 포함하는 반도체 집적 회로 장치.
  2. 제 1 항에 있어서,
    상기 논리 회로는
    상기 제어 신호에 따라 상기 단자군으로부터 인가된 데이터에 대해 상기 데이터 처리를 행한 결과를 상기 어드레스 신호에 의해 지정되는 상기 메모리셀 어레이의 영역에 저장하는
    반도체 집적 회로 장치.
  3. 제 1 항에 있어서,
    상기 논리 회로는
    상기 제어 신호에 따라 상기 어드레스 신호에 의해 지정되는 상기 메모리셀 어레이의 상기 제 1 영역에 저장되어 있는 기억 데이터에 대해 상기 데이터 처리를 행한 결과를 상기 제 1 영역에 재차 저장하는
    반도체 집적 회로 장치.
KR10-2001-0047544A 2000-09-29 2001-08-07 반도체 집적 회로 장치 KR100422490B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JPJP-P-2000-00299384 2000-09-29
JP2000299384 2000-09-29
JP2000374153A JP2002175689A (ja) 2000-09-29 2000-12-08 半導体集積回路装置
JPJP-P-2000-00374153 2000-12-08

Publications (2)

Publication Number Publication Date
KR20020025660A KR20020025660A (ko) 2002-04-04
KR100422490B1 true KR100422490B1 (ko) 2004-03-11

Family

ID=26601155

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2001-0047544A KR100422490B1 (ko) 2000-09-29 2001-08-07 반도체 집적 회로 장치

Country Status (6)

Country Link
US (1) US6728827B2 (ko)
EP (1) EP1199724B1 (ko)
JP (1) JP2002175689A (ko)
KR (1) KR100422490B1 (ko)
DE (1) DE60100779T2 (ko)
TW (1) TW521276B (ko)

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4890737B2 (ja) * 2003-12-01 2012-03-07 日本電気株式会社 電流駆動型デバイスの駆動回路、電流駆動型装置及びその駆動方法
US7580519B1 (en) 2003-12-08 2009-08-25 Advanced Micro Devices, Inc. Triple DES gigabit/s performance using single DES engine
US7545928B1 (en) * 2003-12-08 2009-06-09 Advanced Micro Devices, Inc. Triple DES critical timing path improvement
DE102004014435A1 (de) * 2004-03-24 2005-11-17 Siemens Ag Anordnung mit einem integrierten Schaltkreis
US7885405B1 (en) 2004-06-04 2011-02-08 GlobalFoundries, Inc. Multi-gigabit per second concurrent encryption in block cipher modes
US7526085B1 (en) 2004-07-13 2009-04-28 Advanced Micro Devices, Inc. Throughput and latency of inbound and outbound IPsec processing
US7783037B1 (en) 2004-09-20 2010-08-24 Globalfoundries Inc. Multi-gigabit per second computing of the rijndael inverse cipher
US7921301B2 (en) * 2005-05-17 2011-04-05 Dot Hill Systems Corporation Method and apparatus for obscuring data on removable storage devices
JP2007011517A (ja) * 2005-06-29 2007-01-18 Yamaha Corp 集積回路装置
JP4890976B2 (ja) * 2005-08-31 2012-03-07 キヤノン株式会社 暗号処理装置
US7646867B2 (en) * 2005-09-09 2010-01-12 Netapp, Inc. System and/or method for encrypting data
JP2007128603A (ja) * 2005-11-04 2007-05-24 Matsushita Electric Ind Co Ltd メモリ回路
KR100826648B1 (ko) * 2006-01-09 2008-05-06 주식회사 하이닉스반도체 오토리프레쉬 신호 펄스폭 조절회로 및 오토리프레쉬를위한 내부로우어드레스 생성회로
US8681996B2 (en) * 2007-07-31 2014-03-25 Lsi Corporation Asymmetric key wrapping using a symmetric cipher
US8341330B2 (en) * 2008-01-07 2012-12-25 Macronix International Co., Ltd. Method and system for enhanced read performance in serial peripheral interface
WO2009130888A1 (ja) * 2008-04-22 2009-10-29 パナソニック株式会社 メモリ制御装置、メモリシステム、半導体集積回路およびメモリ制御方法
US8134885B2 (en) * 2009-11-24 2012-03-13 Bae Systems Information And Electronic Systems Integration Inc. High-speed compression architecture for memory
JP4947395B2 (ja) * 2010-01-07 2012-06-06 横河電機株式会社 半導体試験装置
US8943313B2 (en) 2011-07-19 2015-01-27 Elwha Llc Fine-grained security in federated data sets
US8955111B2 (en) 2011-09-24 2015-02-10 Elwha Llc Instruction set adapted for security risk monitoring
US9460290B2 (en) 2011-07-19 2016-10-04 Elwha Llc Conditional security response using taint vector monitoring
US9443085B2 (en) 2011-07-19 2016-09-13 Elwha Llc Intrusion detection using taint accumulation
US9298918B2 (en) 2011-11-30 2016-03-29 Elwha Llc Taint injection and tracking
US9575903B2 (en) 2011-08-04 2017-02-21 Elwha Llc Security perimeter
US9558034B2 (en) 2011-07-19 2017-01-31 Elwha Llc Entitlement vector for managing resource allocation
US9798873B2 (en) 2011-08-04 2017-10-24 Elwha Llc Processor operable to ensure code integrity
US9471373B2 (en) 2011-09-24 2016-10-18 Elwha Llc Entitlement vector for library usage in managing resource allocation and scheduling based on usage and priority
US9098608B2 (en) 2011-10-28 2015-08-04 Elwha Llc Processor configured to allocate resources using an entitlement vector
US8813085B2 (en) 2011-07-19 2014-08-19 Elwha Llc Scheduling threads based on priority utilizing entitlement vectors, weight and usage level
US9465657B2 (en) 2011-07-19 2016-10-11 Elwha Llc Entitlement vector for library usage in managing resource allocation and scheduling based on usage and priority
US9170843B2 (en) 2011-09-24 2015-10-27 Elwha Llc Data handling apparatus adapted for scheduling operations according to resource allocation based on entitlement
JP5382163B2 (ja) * 2012-04-26 2014-01-08 富士通セミコンダクター株式会社 半導体メモリ、半導体メモリの動作方法およびシステム
US9910473B2 (en) * 2013-03-14 2018-03-06 Silicon Storage Technology, Inc. Power management for a memory device
US9384791B1 (en) * 2014-12-30 2016-07-05 Altera Corporation Apparatus and method for sense amplifier offset cancellation
WO2018106570A1 (en) * 2016-12-09 2018-06-14 Cryptography Research, Inc. Programmable block cipher with masked inputs
US10884656B2 (en) * 2017-06-16 2021-01-05 Microsoft Technology Licensing, Llc Performing background functions using logic integrated with a memory
KR20200119669A (ko) * 2019-04-10 2020-10-20 에스케이하이닉스 주식회사 반도체장치
CN111752223B (zh) * 2020-06-29 2022-04-01 配天机器人技术有限公司 信号配置方法、输入输出设备及计算机存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR870003507A (ko) * 1985-09-30 1987-04-17 아르레뜨 다낭제 집적회로 메모리 시스템
JPH0370055A (ja) * 1989-08-09 1991-03-26 Seiko Instr Inc 半導体集積回路装置
KR960006017A (ko) * 1994-07-27 1996-02-23 가나이 쓰토무 반도체 기억장치
JP2000030435A (ja) * 1998-07-10 2000-01-28 Nec Corp 半導体集積回路
JP2001035148A (ja) * 1999-07-23 2001-02-09 Sanyo Electric Co Ltd データ処理装置
KR20010018808A (ko) * 1999-08-23 2001-03-15 윤종용 다수개의 메모리 블락들 중 소정의 메모리 블락을 선택함에 있어 데이터 라인상의 데이터 충돌을 방지하고 메모리 블락, 로직 블락 및 비스트 회로를 분리하여 테스트 가능토록 하는 메모리 로직 복합 반도체장치
JP2001093275A (ja) * 1999-09-20 2001-04-06 Mitsubishi Electric Corp 半導体集積回路装置
US6407950B2 (en) * 1999-03-30 2002-06-18 Mitsubishi Denki Kabushiki Kaisha Semiconductor memory device capable of implementing redundancy-based repair efficiently in relation to layout and operating speed and semiconductor integrated circuit device having such semiconductor memory device

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5721860A (en) * 1994-05-24 1998-02-24 Intel Corporation Memory controller for independently supporting synchronous and asynchronous DRAM memories
US5848247A (en) * 1994-09-13 1998-12-08 Hitachi, Ltd. Microprocessor having PC card interface
US5701438A (en) * 1995-09-29 1997-12-23 Intel Corporation Logical relocation of memory based on memory device type
JP3075184B2 (ja) 1996-08-02 2000-08-07 日本電気株式会社 演算処理機能付主記憶システム及びその制御方法
JPH10269768A (ja) 1997-03-26 1998-10-09 Mitsubishi Electric Corp 半導体集積回路
US6088761A (en) * 1997-03-31 2000-07-11 Sun Microsystems, Inc. Reduced pin system interface
JPH10283777A (ja) * 1997-04-04 1998-10-23 Mitsubishi Electric Corp Sdramコアと論理回路を単一チップ上に混載した半導体集積回路装置およびsdramコアのテスト方法
US5953738A (en) 1997-07-02 1999-09-14 Silicon Aquarius, Inc DRAM with integral SRAM and arithmetic-logic units
JPH11213665A (ja) 1998-01-26 1999-08-06 Mitsubishi Electric Corp 半導体回路装置およびその使用方法
JP3490887B2 (ja) 1998-03-05 2004-01-26 シャープ株式会社 同期型半導体記憶装置
US5953243A (en) * 1998-09-30 1999-09-14 International Business Machines Corporation Memory module identification
KR100390241B1 (ko) * 1998-12-31 2003-08-19 주식회사 하이닉스반도체 라이트 동작시 셀 데이터 보장장치
US6473831B1 (en) * 1999-10-01 2002-10-29 Avido Systems Corporation Method and system for providing universal memory bus and module
US6246626B1 (en) * 2000-07-28 2001-06-12 Micron Technology, Inc. Protection after brown out in a synchronous memory
JP2002108691A (ja) * 2000-09-29 2002-04-12 Mitsubishi Electric Corp 半導体記憶装置および半導体記憶装置の制御方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR870003507A (ko) * 1985-09-30 1987-04-17 아르레뜨 다낭제 집적회로 메모리 시스템
JPH0370055A (ja) * 1989-08-09 1991-03-26 Seiko Instr Inc 半導体集積回路装置
KR960006017A (ko) * 1994-07-27 1996-02-23 가나이 쓰토무 반도체 기억장치
JP2000030435A (ja) * 1998-07-10 2000-01-28 Nec Corp 半導体集積回路
US6407950B2 (en) * 1999-03-30 2002-06-18 Mitsubishi Denki Kabushiki Kaisha Semiconductor memory device capable of implementing redundancy-based repair efficiently in relation to layout and operating speed and semiconductor integrated circuit device having such semiconductor memory device
JP2001035148A (ja) * 1999-07-23 2001-02-09 Sanyo Electric Co Ltd データ処理装置
KR20010018808A (ko) * 1999-08-23 2001-03-15 윤종용 다수개의 메모리 블락들 중 소정의 메모리 블락을 선택함에 있어 데이터 라인상의 데이터 충돌을 방지하고 메모리 블락, 로직 블락 및 비스트 회로를 분리하여 테스트 가능토록 하는 메모리 로직 복합 반도체장치
JP2001093275A (ja) * 1999-09-20 2001-04-06 Mitsubishi Electric Corp 半導体集積回路装置

Also Published As

Publication number Publication date
US20020040420A1 (en) 2002-04-04
EP1199724A1 (en) 2002-04-24
US6728827B2 (en) 2004-04-27
DE60100779T2 (de) 2004-07-15
JP2002175689A (ja) 2002-06-21
EP1199724B1 (en) 2003-09-17
DE60100779D1 (de) 2003-10-23
TW521276B (en) 2003-02-21
KR20020025660A (ko) 2002-04-04

Similar Documents

Publication Publication Date Title
KR100422490B1 (ko) 반도체 집적 회로 장치
US6381190B1 (en) Semiconductor memory device in which use of cache can be selected
US6647478B2 (en) Semiconductor memory device
JP4734580B2 (ja) エンハンスド・バス・ターンアラウンド集積回路ダイナミック・ランダム・アクセス・メモリ装置
KR100953880B1 (ko) 메모리 디바이스, 그 제어방법 및 그 내부 제어방법, 메모리 디바이스를 포함하는 시스템
US20090083479A1 (en) Multiport semiconductor memory device and associated refresh method
US6931482B2 (en) Semiconductor memory device internally provided with logic circuit which can be readily controlled and controlling method thereof
US6466492B2 (en) Synchronous semiconductor memory device and method for controlling mask data input circuit
US20230325326A1 (en) Memory encryption
US7057966B2 (en) Semiconductor memory device for reducing current consumption in operation
JP4012393B2 (ja) 記憶装置、記憶装置の内部制御方法、システム、及びシステムにおける記憶手段の制御方法
JP4050042B2 (ja) 記憶装置及びそのアドレス制御方法、システム及びシステムにおける記憶手段の制御方法
JP3600830B2 (ja) プロセッサ
JP2007200359A (ja) 記憶装置、アドレス制御方法及びシステム
JP4937388B2 (ja) 半導体記憶装置およびメモリ制御システム
JPH08106778A (ja) 同期型半導体記憶装置
JP2024080689A (ja) 認証済みメモリデバイスアクセストランザクションを伴う方法、デバイスおよびシステム
JPH1116348A (ja) 半導体記憶装置
JPH10283773A (ja) ルックアサイド方式メモリコントローラとそのdram
KR20000017503A (ko) 반도체 기억 장치
JP2010272204A (ja) 半導体記憶装置

Legal Events

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

Payment date: 20150224

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20160219

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20170221

Year of fee payment: 14

LAPS Lapse due to unpaid annual fee