KR20080097756A - 반도체 메모리 데이터 전송 제어장치 - Google Patents

반도체 메모리 데이터 전송 제어장치 Download PDF

Info

Publication number
KR20080097756A
KR20080097756A KR1020070043014A KR20070043014A KR20080097756A KR 20080097756 A KR20080097756 A KR 20080097756A KR 1020070043014 A KR1020070043014 A KR 1020070043014A KR 20070043014 A KR20070043014 A KR 20070043014A KR 20080097756 A KR20080097756 A KR 20080097756A
Authority
KR
South Korea
Prior art keywords
data
semiconductor memory
ahb
address
read
Prior art date
Application number
KR1020070043014A
Other languages
English (en)
Other versions
KR100874352B1 (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 (주)코아리버
Priority to KR1020070043014A priority Critical patent/KR100874352B1/ko
Publication of KR20080097756A publication Critical patent/KR20080097756A/ko
Application granted granted Critical
Publication of KR100874352B1 publication Critical patent/KR100874352B1/ko

Links

Images

Classifications

    • 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/1078Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
    • G11C7/109Control signal input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/18Address timing or clocking circuits; Address control signal generation or management, e.g. for row address strobe [RAS] or column address strobe [CAS] signals

Abstract

반도체 메모리 제어장치에 FIFO (First Input First Output) 및 AMBA (Advanced Microcontroller Bus Architecture) 인터페이스에서 제공하는 SPLIT 전송을 이용하여, 전체 시스템의 성능을 향상시킬 수 있는, 효율적인 데이터 전송을 위한 반도체 메모리 데이터 전송 제어장치가 개시된다.
반도체 메모리의 데이터 전송 제어장치는, AHB 를 통해 마스터로부터 제 1 쓰기 데이터를 입력받아 임시로 저장하고 정렬하여 반도체 메모리로 제 2 쓰기 데이터로 출력하고, 반도체 메모리로부터 제 1 읽기 데이터를 입력받아 임시로 저장하고 정렬하여 AHB 를 통해 마스터로 제 2 읽기 데이터로 출력하는 데이터 패스 블록 및 반도체 메모리 및 데이터 패스 블록으로부터 상태 신호를 수신하여, 반도체 메모리의 응답시간에 따른 지연에 의해 반도체 메모리가 데이터를 입출력할 수 없는 상태인 경우에는 SPLIT 설정 신호를 AHB 로 출력하여 AHB 를 다른 마스터들 중 하나로 넘겨주고, 반도체 메모리가 데이터를 입출력할 수 있는 상태가 되는 경우에는 SPLIT 해제 신호를 상기 AHB 로 출력하여 AHB 를 다른 마스터들 중 하나로부터 마스터로 얻어오는 제어블록을 포함한다.
반도체 메모리, 데이터 전송, AMBA

Description

반도체 메모리 데이터 전송 제어장치 {AN APPARATUS FOR TRANSFERING DATA OF SEMICONDUCTOR MEMORY}
도 1 은 AHB 를 적용한 종래 멀티미디어 어플리케이션 시스템의 일 예를 개략적으로 나타낸 도면이다.
도 2 는 본 발명의 일 실시예에 따른 반도체 메모리의 데이터 전송 제어장치를 개략적으로 나타낸 도면이다.
도 3 은 도 2 의 실시예에서 읽기 동작에 관여하는 부분의 구성을 상세히 나타낸 도면이다.
도 4 는 도 3 의 동작 타이밍도이다.
도 5 는 도 2 의 실시예에서 쓰기 동작에 관여하는 부분의 구성을 상세히 나타낸 도면이다.
도 6 은 도 5 의 동작 타이밍도이다.
*도면의 주요 부분에 대한 부호의 설명*
6 : 데이터 전송 제어장치 120 : SPLIT 응답 생성기
125 : 메인 제어기 130 : 어드레스 패스 블록
140 : 데이터 패스 블록 150 : 제어블록
본 발명은 데이터 전송 제어장치에 관한 것으로, 보다 상세하게는 AMBA (Advanced Microcontroller Bus Architecture) 인터페이스에 사용되는 반도체 메모리의 데이터 전송 제어장치에 관한 것이다.
시스템 온 칩 (System-on-Chip ; SoC) 은 시스템을 한 개의 칩에 올려놓는다는 사전적 의미를 갖으며, 한 개의 칩상에 완전한 구동 가능한 제품 즉, 시스템을 설계하는 기술을 의미한다. 즉, 컴퓨터가 명령어를 처리하기 위해 필요한 모든 하드웨어 컴포넌트를 하나의 칩상에 포함하고 있는 데 비해 SoC 는 그 컴퓨터와 필요한 모든 부수적인 전자부품들을 포함한다. 예를 들면, 통신에 사용되는 SoC 에는 마이크로프로세서, DSP, 램과 롬 등이 함께 포함될 수 있다. 이와 같이 SoC 를이용하면 일반적으로 시스템의 크기가 작아지며 조립 과정도 단순해 진다.
이와 같은 SoC 기술을 적용하면 프로세서 (CPU), 디지털 신호처리장치 (DSP), 메모리, 고주파, 로직 등 시스템 구성 요소를 하나의 반도체 칩에 담을 수 있기 때문에 하나의 기판 위에 CPU 와 메모리 등 여러 반도체를 모아 구현하던 종래의 시스템과는 크기와 기능면에서 엄청난 차이가 있게 된다.
특히, 하나의 칩 안에 들어가는 개개의 컴포넌트를 IP (Intellectual Property) 라고 부르는데, SoC 에서는 기존에 존재하는 IP 를 여러 다른 시스템에서 재사용할 수 있도록 함으로써 화상형성장치 뿐 아니라 휴대폰, 컴퓨터, 디지털 TV 등 각종 전자 제품의 경우도 칩 하나로 저렴하게 수개월마다 새로 업그레이드하는 일이 가능하다.
AMBA 란 암 (ARM) 사가 개발한 SoC 를 사용하는 기능 블록들간의 연결 프로토콜에 관한 것으로서, 암 (ARM) 프로세서에 사용하는 하나의 칩에 의한 통신 방법을 정의하고 있다.
AMBA 인터페이스는 AHB (Advanced High-performance Bus), APB (Advanced Peripheral Bus), ASB (Advanced System Bus) 로 구성되는데, AHB 는 고성능을 갖고 높은 주파수를 갖는 시스템 모듈이다. AHB 는 저전력으로 프로세서, 온칩 (on-chip) 메모리 및 오프칩 (off-chip) 메모리와의 효율적인 통신을 지원한다.
최근 암 프로세서는 고성능, 저전력의 장점을 가지고 있어 핸드폰, 디지털 카메라, 휴대용 MP3 등의 멀티미디어 어플리케이션에 대하여 그 수요가 급증하고 있는 상황이다. 멀티미디어 어플리케이션에서는 프로세서 성능과 더불어 메모리의 용량과 성능이 중요한 역할을 하게 된다. 최근에는 용량은 크지만 속도가 느린 SDRAM (synchronous random access memory) 을 대체하여 대용량이면서 속도가 개선된 DDR (double data rate) SDRAM 이 많이 이용되고 있다.
DDR SDRAM 은 입력 클락의 라이징 에지 (rising edge) 와 폴링 에지 (falling edge) 에서 데이터 입출력이 이루어져, SDRAM 과 비교하여 명령어 입력 부분을 제외하면 약 2 배 정도로 대역폭 성능이 향상되는 특징이 있다.
한편, 멀티미디어 어플리케이션에서는 데이터의 사용이 많으므로 메모리에서 데이터의 효율적인 입출력 관리가 필요하다. 따라서, 대부분의 암 프로세서를 기반으로 하고 AMBA 인터페이스를 사용하는 대부분의 멀티미디어 어플리케이션에서는, 인스트럭션 페치 (Instruction fetch) 및 데이터 읽기 및 쓰기가 모두 같은 AHB (Advanced High-performance Bus) 를 사용하기 때문에, 메모리의 입출력의 대역폭을 효율적으로 관리하는 경우 전체 시스템의 성능이 높아지게 된다.
도 1 은 AHB 를 적용한 종래 멀티미디어 어플리케이션 시스템의 일 예를 개략적으로 나타낸 도면이다.
도 1 을 참조하면, 멀티미디어 어플리케이션 시스템은, AHB 를 통해 암 프로세서 (1) 와 버스중재기 (Arbiter ; 2), 디코더 (Decoder ; 5), DMA (Direct Memory Access ; 3) 제어기, 멀티미디어 제어기 (4), RAM/ROM (read only memory) 제어기 (7), 데이터 전송 제어장치 (6), 브리지 (8) 가 연결되며, 데이터 전송 제어장치 (6) 는 DDR SDRAM (9) 과 연결된다. 여기서, 버스중재기 (2) 는 여러 개의 마스터 (Master) 들의 버스사용권한을 중재하는 역할을 하고, 디코더 (5) 는 여러 슬레이브 (Slave) 들 중에서 마스터가 접속하려는 슬레이브를 선택하도록 해주는 역할을 한다. 멀티미디어 제어기 (4) 는 JPEG 코덱, MPEG 코덱, MP3 코덱 등의 제어기들이 들어갈 수 있다. 브리지 (8) 는 다른 프로토콜을 가진 버스와 연결시켜주는 기능을 수행한다. RAM/ROM 제어기 (7) RAM 및 ROM 과의 입출력 통신을 제어하는 기능을 수행한다.
예를 들어, 도 1 의 멀티미디어 어플리케이션에서 AHB 의 마스터로는 암 프로세서 (1), DMA 제어기 (3), 멀티미디어 제어기 (4) 가 될 수 있다. 그런데, 여러 개의 마스터들이 동일한 AHB 를 공유하여 사용하면, 일 예로, 멀티미디어 제어기 (4) 가 동작하게 되는 경우 멀티미디어 제어기 (4) 가 메모리의 입출력을 수행하기 위해 대부분의 버스 대역폭을 사용하게 된다. 이 경우, 효율적인 메모리 입출력 관리가 이루어지지 않으면 멀티미디어 제어기 (4) 의 독점적인 버스 대역폭의 사용은 멀티미디어 어플리케이션의 전체 동작에 영향을 주어 성능 저하가 유발될 수 있다.
또한, DDR SDRAM (9) 은 데이터 입출력을 위해 명령어 입력과 데이터 입출력 대기시간 (Latency) 을 갖기 때문에, 데이터 전송 제어장치 (6) 에서 이 시간 동안 대기하면서 다른 마스터에게 사용권을 넘기지 않게 되어 다른 마스터들이 그 시간 동안 AHB 를 사용할 수 없고 대기 상태로 기다려야 한다. 따라서, DDR SDRAM (9) 의 대기시간 동안에는 어떠한 마스터도 버스를 사용할 수가 없게 되므로, 멀티미디어 어플리케이션에는 그 시간 만큼의 성능 저하가 유발된다.
따라서, 본 발명은 상술한 종래 기술의 문제점을 해결하기 위한 것으로 AMBA 인터페이스를 이용한 반도체 메모리의 데이터 입출력시 인터페이스의 효율을 개선할 수 있는 데이터 전송 제어장치를 제공하는데 그 목적이 있다.
본 발명의 목적을 달성하기 위하여, 본 발명에 따른 반도체 메모리의 데이터 전송 제어장치는, AHB 를 통해 마스터로부터 제 1 쓰기 데이터를 입력받아 임시로 저장하고 정렬하여 반도체 메모리로 제 2 쓰기 데이터로 출력하고, 반도체 메모리로부터 제 1 읽기 데이터를 입력받아 임시로 저장하고 정렬하여 AHB 를 통해 마스 터로 제 2 읽기 데이터로 출력하는 데이터 패스 블록 및 반도체 메모리 및 데이터 패스 블록으로부터 상태 신호를 수신하여, 반도체 메모리의 응답시간에 따른 지연에 의해 반도체 메모리가 데이터를 입출력할 수 없는 상태인 경우에는 SPLIT 설정 신호를 AHB 로 출력하여 AHB 를 다른 마스터들 중 하나로 넘겨주고, 반도체 메모리가 데이터를 입출력할 수 있는 상태가 되는 경우에는 SPLIT 해제 신호를 상기 AHB 로 출력하여 AHB 를 다른 마스터들 중 하나로부터 마스터로 얻어오는 제어블록을 포함한다.
바람직하게는, 본 발명의 반도체 메모리의 데이터 전송 제어장치에서, AHB 에서 출력하는 슬레이브의 어드레스를 입력받아 대응하는 반도체 메모리의 어드레스를 생성한 후에 생성된 어드레스를 반도체 메모리로 출력하는 어드레스 패스 블록을 더 포함한다.
바람직하게는, 본 발명의 반도체 메모리의 데이터 전송 제어장치에서, 어드레스 패스 블록은 AHB 로부터 입력된 어드레스를 저장하는 어드레스 저장기 및 어드레스 저장기에 저장된 어드레스를 기초로 하여 대응하는 반도체 메모리의 어드레스를 생성하고, 생성된 어드레스를 반도체 메모리의 어드레스 입력부로 출력하는 어드레스 생성기를 포함한다.
바람직하게는, 본 발명의 반도체 메모리의 데이터 전송 제어장치에서, 제어블록은, AHB, 상기 어드레스 패스 블록, 및 상기 데이터 패스 블록 각각과 제어 및 상태 신호들을 입출력하는 메인 제어기, 메인 제어기로부터의 제어신호에 의해 반도체 메모리를 제어하는 신호를 생성하여 반도체 메모리로 출력하는 반도체 메모리 제어신호 발생기 및 메인 제어기로부터 수신한 읽기 시작 여부 검출 신호 및 상태신호를 기초로 하여 SPLIT 설정 신호 또는 SPLIT 해제 신호를 AHB 로 출력하는 SPLIT 응답 생성기를 포함한다.
바람직하게는, 본 발명의 반도체 메모리의 데이터 전송 제어장치에서, 데이터 패스 블록은 쓰기 데이터 패스 블록을 포함하며, 쓰기 데이터 패스 블록은 마스터의 제 1 쓰기 데이터를 임시로 저장하는 쓰기 FIFO 및 쓰기 FIFO 로부터 출력되는 데이터를 반도체 메모리의 데이터 사이즈에 맞게 정렬시켜 제 2 쓰기 데이터를 출력하는 쓰기 데이터 정렬기를 포함하고, 반도체 메모리가 데이터를 입출력할 수 없는 상태는 쓰기 FIFO 가 포화된 상태이고, 반도체 메모리가 데이터를 입출력할 수 있는 상태는 쓰기 FIFO 가 비포화된 상태이다.
바람직하게는, 본 발명의 반도체 메모리의 데이터 전송 제어장치에서, 데이터 패스 블록은 읽기 데이터 패스 블록을 포함하며, 읽기 데이터 패스 블록은 제 1 읽기 데이터를 AHB 의 사이즈에 맞게 정렬하는 읽기 데이터 정렬기 및 읽기 데이터 정렬기로부터 데이터를 입력받아 임시로 저장하고 제 2 읽기 데이터로 출력하는 읽기 FIFO 를 포함하고, 반도체 메모리가 데이터를 입출력할 수 없는 상태는 읽기 FIFO 가 비어있는 상태이고, 반도체 메모리가 데이터를 입출력할 수 있는 상태는 읽기 FIFO 에 하나 이상의 데이터가 저장된 상태이다.
바람직하게는, 본 발명의 반도체 메모리의 데이터 전송 제어장치에서, 반도체 메모리는 DDR SDRAM 이다.
이하, 첨부한 도면을 참조하여 본 발명의 실시예를 설명한다.
도 2 는 본 발명의 일 실시예에 따른 반도체 메모리의 데이터 전송 제어장치를 개략적으로 나타낸 도면이다.
도 2 를 참조하면, 데이터 전송 제어장치 (100) 는 어드레스 패스 블록 (130), 데이터 패스 블록 (140), 제어 블록 (150) 을 포함한다.
어드레스 패스 블록 (130) 은 AMBA 인터페이스의 AHB (10) 로부터 출력된 어드레스를 임시 저장하는 어드레스 저장기 (131) 와 반도체 메모리의 어드레스를 생성하기 위한 어드레스 생성기 (132) 를 포함한다.
데이터 패스 블록 (140) 은 AHB 의 데이터 크기와 DDR SDRAM (9) 의 데이터 크기가 다를 경우에 이를 정렬시키기 위해서 쓰기 데이터 정렬기 (141) 와 읽기 데이터 정렬기 (142) 를 포함한다. 일 예로서, AHB 의 데이터 크기가 32 비트 (bit) 이고, SDRAM (190) 의 데이터 크기가 16 비트 또는 8 비트인 경우이다. 데이터의 크기가 같은 경우에는 쓰기 데이터 정렬기 (141) 및 읽기 데이터 정렬기 (142) 는 생략될 수도 있다. 또한, 데이터 패스 블록 (140) 은 데이터의 임시 저장을 위해 쓰기 FIFO (first in firt out ; 143) 와 읽기 FIFO (144) 를 더 포함한다. 여기서, 쓰기 FIFO (143) 는 AHB 의 쓰기 데이터를 임시 저장하는 곳으로 사용되고, 그 크기가 클수록 데이터 저장 공간이 늘어나므로 AMBA 인터페이스의 효율을 향상시킬 수 있다. 읽기 FIFO (144) 는, 일정한 데이터 크기 단위로써 특정 어드레스 영역에서 어드레스 값을 하나씩 증가시키며 데이터를 입출력하는 AHB 버스트 동작에서, AHB 의 버스트 동작의 데이터 사이즈에 해당하는 만큼 DDR SDRAM (9) 에서 읽어온 데이터를 임시 저장하는 곳으로 AHB 의 읽기 요청이 들어오 면 해당 데이터를 AHB 에 전달한다.
제어 블록 (150) 은 SPLIT 응답 생성기 (120), 메인 제어기 (125), 그리고 DDR 제어신호 발생기 (110) 를 포함한다.
SPLIT 응답 생성기 (120) 및 메인 제어기 (125) 는 AHB (10) 의 제어 및 상태신호들에 따라서 데이터 패스 블록 (130) 과 어드레스 패스 블록 (140) 에 대한 제어 신호들을 발생시킨다.
AMBA 프로토콜에 정의된 AHB 의 SPLIT 전송이란, 슬레이브가 특정 기능을 수행하기 위하여 다수의 싸이클을 소모해야할 필요가 있을 경우에 SPLIT 응답을 보내어, 그 싸이클 동안 다른 마스터가 버스를 사용할 수 있도록 사용권한을 넘겨주는 기능을 해준다. SPLIT 응답이 발생한 후에, 이 슬레이브를 조정하고 있었던 마스터가 다른 슬레이브를 접근하기 위하여 버스중재기 (2) 에게 요청하더라도, 버스중재기 (2) 는 SPLIT 된 마스터로부터 오는 요청을 무시하고 버스 접근권한을 허용하지 않는다. SPLIT 응답을 보낸 슬레이브가 임의의 테스크를 수행한 후 마스터에게 SPLIT 을 풀어주는 신호를 보내면, 그 마스터는 다시 접근 권한을 획득할 수 있다. 본 발명은 이러한 SPLIT 전송을 지원하는 버스와 결합하여 동작할 수 있는바, SPLIT 전송을 지원하는 버스라면 AHB 프로토콜 이외의 임의의 버스에도 적용이 가능하다.
SPLIT 응답 생성기 (120) 및 메인 제어기 (125) 는 DDR SDRAM 제어기 (100) 의 상태를 주시하여 AHB (10) 에서 읽기 또는 쓰기 요청이 들어왔을 때 DDR SDRAM 제어기 (100) 가 응답을 할 수 없는 상황이면 AHB (10) 로 SPLIT 설정 신호를 보내 어 AHB (10) 를 다른 마스터에게 넘겨주고, 응답을 할 수 있는 상황이 되면 AHB (10) 으로 SPLIT 을 해제하는 신호를 보내어, 해당 마스터가 다시 AHB (10) 를 사용할 수 있게 한다.
DDR 제어신호 발생기 (110) 는 SPLIT 응답 생성기 (120) 및 메인 제어기 (125) 로부터 명령을 받아 DDR SDRAM (9) 을 제어하는 신호를 발생시킨다.
SPLIT 응답 생성기 (120) 및 메인 제어기 (125) 와 AHB 와의 제어신호에 관하여 설명하면, HREADYddr (161) 은 DDR SDRAM (9) 의 동작이 준비되어지 여부를 나타내는 데이터 전송 제어 장치 (100) 로부터 출력되는 신호로서 액티브 하이 (Active High) 이다. HRESP (162) 는 상태를 나타내는 2 비트의 신호로써, 데이터 전송 제어 장치 (100) 으로부터 출력되며, OKAY,ERROR,RETRY,SPLIT 의 상태를 나타낼 수 있다. HTRANS (163) 는 전송 방식을 나타내는 2 비트의 신호로써, 데이터 전송 제어 장치 (100) 으로부터 출력되며, 이 신호는 마스터가 아무런 동작도 하지 않는 IDLE , 버스트 전송의 중간에 IDLE 싸이클을 삽입할 수 있는 BUSY, 하나의 데이터만을 전송하거나 버스트 동작의 시작을 알리는 NONSEQ, 나머지의 버스트 전송이 순차적이라는 것을 알리는 SEQ 를 나타낼 수 있다.
HREADY (164) 는 데이터 전송 제어 장치 (100) 으로 입력되며, 다른 슬레이브들의 동작이 준비되었는지 여부를 판정하는 신호이다. HWRITE (165) 는 읽기 또는 쓰기 여부를 나타내는 1 비트의 신호로써, 데이터 전송 제어 장치 (100) 으로 입력되며, 이 신호가 HIGH 일 때는 쓰기 전송 로우일 때는 읽기 전송을 나탄낸다. HSEL (166) 은 마스터에 의하여 해당 슬레이브가 선택되었는지 여부를 나타내는 1 비트의 신호로써, 디코더 (5) 로부터 데이터 전송 제어 장치 (100) 으로 출력된다. HMASTER (167) 은 해당 슬레이브를 제어하고 있는 마스터를 나타내는 4 비트의 신호로서, 버스 중재기 (2) 로부터 데이터 전송 제어 장치 (100) 으로 출력된다. HSPLITddr (168) 은 해당 슬레이브에 적용된 SPLIT 동작을 풀어주기 위해 해당 슬레이브를 제어하던 마스터를 지정하는 16 비트의 신호로서, 각각의 비트는 하나의 마스터를 나타내고 데이터 전송 제어 장치 (100) 로부터 버스 중재기 (2) 로 출력된다. HADDR (169) 는 슬레이브의 어드레스를 32 비트의 신호로써, 마스터로부터 데이터 전송 제어 장치 (100) 에 출력된다. HWDATA (170) 은 마스터로부터 데이터 전송 제어 장치 (100) 로 출력되는 데이터를 나타내는 신호이다. HRDATA (171) 은 데이터 전송 제어 장치 (100) 로부터 마스터로 출력되는 데이터를 나타내는 신호이다.
DDR 제어신호 (191) 은 DDR SDRAM (9) 의 상태를 제어하기 위한 신호로서 , 데이터 전송 제어 장치 (100) 로부터 DDR SDRAM (9) 으로 출력된다. 어드레스 신호 (192) 는 데이터 전송 제어 장치 (100) 에 의하여 저장 및 생성된 어드레스가 DDR SDRAM (9) 으로 입력되는 신호이다. 데이터 신호 (193) 는 데이터 전송 제어 장치 (100) 에 의하여 임시로 저장되었던 데이터들의 신호이다.
도 3 은 도 2 의 실시예에서 읽기 동작에 관여하는 부분의 구성을 상세히 나타낸 도면으로서, 일예로 16 비트 DDR SDRAM 을 제어하는 데이터 전송 제어장치 (100) 를 나타낸다.
여기에서, 도 2 의 SPLIT 응답 생성기 (120) 는 도 3 의 마스터 저장기 (210), SPLIT 마스터 저장기 (220), 마스터 비교기 (230), 현재 마스터 (240), 및 SPLIT 및 OKAY 응답기 (250) 를 포함하고, 도 2 의 메인 제어기 (125) 는 AHB 읽기 시작 검출기 (270), 및 DDR SDRAM 읽기 제어기 (280) 를 포함한다. 또한 도 2 의 읽기 데이터 정렬기 (142) 는 버퍼 및 MUX (290), 및 데이터 사이즈 저장기 (320) 를 포함한다.
도 3 을 참조하면, 마스터가 DDR SDRAM (9) 에 데이터 읽기 동작을 요청하기 위하여 데이터 전송 제어 장치 (100) 로, HTRANS (163) 에 NSEQ ,즉 버스트 전송의 시작을 요청하고, HADDR (163) 에 어드레스를 출력하고, HWRITE (165) 는 로우를 출력시킨다. AHB 읽기 시작 검출기 (270) 가 AHB 읽기 시작 여부를 판단하여 AHB 읽기 시작 신호 (252) 를 DDR SDRAM 읽기 제어기 (280) 와 SPLIT 및 OKAY 응답기 (250) 에 전달하면, DDR SDRAM 읽기 제어기 (280) 는 DDR SDRAM (340) 에 대한 읽기 제어 기능을 시작하고, SPLIT 및 OKAY 응답기 (250) 는 현재의 데이터 읽기 동작을 중단하고 AHB 를 풀어주는 SPLIT 응답을 한다.
DDR SDRAM (9) 의 데이터를 읽기 FIFO (144) 에서 읽어오면 DDR SDRAM 읽기 제어기 (280) 는 읽기 FIFO (144) 의 FIFO 포인터 신호로부터 "읽기 요청 완료" 상태를 인식하고, SPLIT 및 OKAY 응답기 (250) 에 SPLIT 및 OKAY 상태 신호 (251) 를 통해 OKAY 신호를 전달한다. 또한, SPLIT 및 OKAY 응답기 (250) 는 SPLIT 마스터 저장기 (220) 에 읽기 완료 여부 신호 (255) 를 전달하여 SPLIT 마스터 저장기 (220) 가 AHB (10) 으로 HSPLITddr (168) 신호를 통해 SPLIT 을 풀어주도록 한다. 전술한 "읽기 요청 완료" 상태는 임시 저장 장치인 읽기 FIFO (144) 에 적절한 데이터가 입력되어 마스터가 이 데이터를 읽을 수 있는 상태를 의미하는 것으로서, 일 예로서 읽기 FIFO (144) 가 한 개의 데이터를 읽었을 경우, 다른 예로서 읽기 FIFO (144) 의 전체 용량의 절반이 채워졌을 경우 등으로 정의할 수 있으며, 이는 구현에 따라 달라질 수 있다. 본 실시예에서는 "읽기 요청 완료" 상태는 DDR 제어신호 발생기 (110) 가 DDR SDRAM (9) 에 DDR 제어신호 (191) 을 통해 RAS (Row Address Select) 를 요청한 후 , 다시 CAS (Column Address Select) 을 요청한 직후로 하였다.
전술한 "읽기 요청 완료" 상태에서 AHB 읽기 시작 검출기 (270) 에서 읽기 시작 여부를 판정한 후, AHB 읽기 시작신호 (252) 를 통해서 SPLIT 및 OKAY 응답기 (250) 으로 출력하고, 마스터 비교기 (230) 은 마스터 저장기 (210) 와 현재 마스터 출력기 (240) 의 마스터를 비교하여 같은 경우에 마스터 비교 결과 신호 (256) 를 SPLIT 및 OKAY 응답기 (250) 에 출력한다. SPLIT 및 OKAY 응답기 (250) 은 마스터 비교 결과 신호 (256) 및 AHB 읽기 시작 신호 (252) 를 기초로 하여, OKAY 를 응답하면 마스터는 AHB (10) 를 통해 읽기 FIFO (144) 에 임시적으로 저장된 데이터들을 읽기 시작한다.
버퍼 및 MUX (290) 는 데이터 사이즈 저장기 (320) 의 선택에 따라, 통상적으로 32 비트 (Word) 와 16 비트 (Half Word) 인 경우를 구분하여 데이터를 정렬한다. HSIZE (172) 는 데이터 사이즈를 나타내는 3 비트로 구성되고 마스터로부터 데이터 전송 제어 장치 (100) 으로 출력되는 신호로서, 데이터 사이즈 저장기 (320) 는 HSIZE (172) 로부터 데이터 사이즈를 입력받아 저장한다. 데이터 사 이즈는 위의 두 가지에 한정되는 것이 아니며 구체적인 구현에 따라서, 예를 들면 64 비트, 128 비트 등으로, 달라질 수 있다.
도 4 는 도 3 의 동작 타이밍도이다.
도 3 및 도 4 를 참조하면, CLOCK (173) 은 AHB (9) 가 작동하는 클럭 신호를 나타낸다. HBURST (174) 는 마스터로부터 데이터 전송 제어장치 (100) 으로 출력되며, 버스트 전송의 형태를 나타내는 3 비트의 신호이다. HBURST (174) 는 4,8,16 박자 (beat) 의 랩 (wrap) 또는 인크리먼트 (increment) 전송 상태를 나타내는 신호를 출력한다. 랩 및 인크리먼트 전송 방식에 관해서는, AMBA 프로토콜에 상세히 정의되어 있다. 본 실시예에서는, HBURST (174) 가 4 박자 인크리먼트 전송 형태로 되어 있으므로, 하나의 버스트 전송에서 총 4 개의 데이터를 입출력하게 된다. HSIZE (172) 는 010으로 출력됨으로써 워드 단위 ,즉 32 비트 전송을 나타낸다. HWRITE (165) 는 로우를 출력하여 읽기 동작을 의미한다.
HMASTER (167) 가 M1 일 때, 즉 AHB 를 마스터 M1 이 잡고 있는 상태에서, NSEQ (비순차적 전송 요청 ; nonsequential transfer request) 를 데이터 전송 제어장치 (100) 에 보내어, 버스트 읽기 동작을 요청한다. 데이터 전송 제어장치 (100) 는 상술한 바대로 HRESP (162) 를 통해 SPLIT 응답을 하고, DDR 제어신호 (191) 에는 RAS (Row Address Select) 를 요청한다. SPLIT 응답에 의해 AHB 의 마스터가 M2 로 바뀌어 HMASTER (167) 에는 M2 가 출력된다. DDR 제어신호 (191) 는 그 후 CAS 를 요청하며, 한 클럭 후에는 HSPLITddr (168) 에 마스터가 M1 이라는 신호 (M1 SPLIT ) 를 보내어 SPLIT 을 풀어주도록 한다.
M1 은 다시 읽기 버스트 전송을 재개한다. 데이터 전송 제어장치 (100) 은 데이터 신호 (192) 로 DDR DQS (175) 에 따라 라이징 에지와 폴링 에지에 정렬하여 데이터를 읽어들인다. 데이터 전송 제어장치 (100) 는 한 클럭 후에 데이터를 사이즈에 맞추어 정렬하고, HRDATA (171) 에 데이터를 출력한다.
예에서 볼 수 있듯이, AHB (9) 는 마스터 M2 에 의해서 다섯 클럭 동안 사용될 수 있었다. 그래서, DDR SDRAM (9) 의 대기시간 동안에 AHB 는 다른 마스터에 의해서 사용될 수 있기 때문에, 전체 시스템의 성능이 높아지게 된다.
도 5 는 도 2 의 실시예에서 쓰기 동작에 관여하는 부분의 구성을 상세히 나타낸 도면으로서, 데이터 전송 제어장치 (100) 를 나타낸다.
여기에서, 도 2 의 SPLIT 응답 생성기 (120) 는 도 5 의 SPLIT 마스터 저장기 (410), SPLIT 및 OKAY 응답기 (420) 를 포함하고, 메인 제어기 (125) 는 AHB 쓰기 시작 검출기 (430), 및 DDR SDRAM 쓰기 제어기 (440) 를 포함한다. 도 5 는 발명의 이해를 돕기 위한 실시예에 관한 도면으로서, 도 3 의 읽기 동작에 관여하는 도면의 구성과 중복되는 부분이 있다.
도 5 를 참조하면, 마스터가 데이터 전송 제어장치 (100) 에 쓰기 요청을 하기 위해서, HTRANS (167) 에 NSEQ 신호를 출력하고, HWRITE (165) 는 하이 신호로 출력하고, HSEL (166) 은 해당 슬레이브인 데이터 전송 제어 장치 (220) 를 선택하는 하이 신호가 출력된다.
AHB 쓰기 시작 검출기 (430) 가 쓰기 시작 여부를 판정하면 AHB 쓰기 시작 신호 (410) 을 DDR SDRAM 쓰기 제어기 (440) 와 SPLIT 및 OKAY 응답기 (420) 에 출 력한다. DDR SDRAM 쓰기 제어기 (440) 는 AHB 쓰기 시작 신호 (410) 를 기초로 하여 DDR 제어신호 발생기 (110) 에 쓰기 시작 여부에 관한 신호를 출력한다. DDR 제어신호 발생기 (110) 는 DDR SDRAM (9) 에 데이터를 쓰기 위해서 DDR 제어 신호 (191) 를 통해, 쓰기 신호를 발생시킨다.
AHB (10) 를 통해 쓰기 FIFO (143) 에 저장된 데이터는 곧바로 쓰기 데이터 정렬기 (141) 를 통해 정렬된 후에, 데이터 신호 (192) 를 통해 DDR SDRAM (9) 에 저장된다. 쓰기 데이터 정렬기 (141) 는 어드레스 저장기 (131) 로 부터 어드레스를 입력 받고, 쓰기 FIFO (143) 으로부터 데이터를 입력받아서, 이 데이터를 16 bit 상위 데이터와 16 bit 하위 데이터를 구분한 후에 어드레스 값에 따라서 먹싱한 후 생성된 데이터를 DDR SDRAM (9) 에 저장한다. 데이터 사이즈에 따라서 쓰기 데이터 정렬기 (141) 의 구체적인 구현은 달라질 수도 있다.
AHB 쓰기 동작은 쓰기 FIFO (143) 가 포화상태 (Full) 가 되기까지 진행할 수 있으며, 쓰기 포화상태가 되면 DDR SDRAM 쓰기 제어기 (440) 가 FIFO 포인터 (402) 를 통하여 이를 통지받고, SPLIT 및 OKAY 응답기 (250) 에 FIFO 포화상태 신호 (405) 를 출력하고, 이 경우 AHB 쓰기 시작 신호 (401) 가 발생하면 SPLIT 및 OKAY 응답기 (250) 는 HREADYddr (161) 에 READY 상태가 아니라는 신호와 HRESP (162) 에 SPLIT 신호를 출력하여, 현재의 쓰기 동작을 중단하고 AHB (10) 를 풀어준다.
그 후, SPLIT 응답에 의해 다른 마스터가 AHB (10) 를 잡고 있는 상태가 되며, 쓰기 FIFO (143) 로부터 DDR SDRAM (9) 으로의 쓰기 동작이 진행되어 쓰기 FIFO (143) 가 FIFO 포화 상태에서 FIFO 비 포화상태 (Not full) 가 되면, DDR SDRAM 쓰기 제어기 (440) 는 FIFO 포인터 (402) 로부터 이를 판단한 후에 SPLIT 마스터 저장기 (220) 에 FIFO 비포화 신호 (404) 를 출력하여 SPLIT 마스터 저장기 (220) 가 AHB (9) 로 HSPLITddr (168) 을 통해 SPLIT 을 풀어주는 신호를 발생시키도록 한다.
도 6 은 도 5 의 동작 타이밍도이다.
도 5 및 도 6 을 참조하면, HMASTER (167) 가 M1 으로 설정되어 AHB 의 마스터가 M1 인 상태에서, M1 은 HTRANS (163) 에 NSEQ 를 설정하고, HADDR (169) 에 데이터를 기록할 어드레스를 설정하여 쓰기 동작을 수행 준비를 한다. DDR SDRAM 쓰기 제어기 (440) 는 SPLIT 및 OKAY 응답기 (250) 에 OKAY 를 마스터로 출력하게 하여, 마스터 M1 이 쓰기 동작을 수행하도록 한다. 마스터가 HADDR (169) 에 어드레스를 설정하고, HRDATA (171) 에 쓰기 데이터를 설정하여 데이터를 쓰는 동안, 쓰기 FIFO (143) 는 데이터를 입력받고, DDR 제어신호 발생기 (110) 는 DDR 제어신호 (191) 에 RAS 및 CAS 를 요청한다.
AHB 는 쓰기 FIFO (143) 가 포화상태가 될 때까지 쓰기 동작을 연속으로 진행할 수 있고, 포화상태가 되면 HRESP (162) 에 SPLIT 을 출력하여 다른 마스터인 M2 가 AHB (9) 를 사용할 수 있도록 한다. 그 동안, 쓰기 FIFO (143) 에 있는 데이터는 DDR SDRAM (9) 으로 출력되어 쓰기 FIFO (143) 는 비 포화상태가 되고, SPLIT 마스터 저장기 (220) 는 HSPLITaddr (168) 에 SPLIT 을 풀어주는 신호를 출력하게 된다.
이러한 동작에 의하여, AHB (9) 는 DDR SDRAM (9) 의 처리를 위한 시간인 일곱 클럭 동안 다른 마스터인 M2 에 의하여 사용되게 되기 때문에, 전체 시스템의 성능이 향상되게 된다.
본 발명의 설명에 사용된 일련의 용어들은 발명은 한정하기 위한 것이 아니라, 발명의 이해를 돕기 위한 예시적인 것이다. 현재 SPLIT 전송을 지원하는 버스가 AHB 이기 때문에, AMBA 프로토콜을 지원하는 AHB 에 대하여 설명되었을 뿐, SPLIT 전송을 지원하는 모든 버스에 본 발명이 적용 가능하다는 사실을 당업자는 명확하게 이해할 수 있다. 또한, DDR SDRAM 뿐만 아니라 SDR SDRAM, 램버스 RAM 등 당업자가 용이하게 변형할 수 있는 수준 하에서 일련의 반도체 메모리에 본 발명이 적용될 수 있다. 즉, 본 발명은 반도체 메모리가 입출력 동작을 하기 위하여 준비하는 대기시간을 이용하여, 다른 마스터에게 사용권한을 넘겨주어 버스의 사용 효율을 높이는 것에 특징이 있으므로, 반도체 메모리의 종류는 구체적인 실시예에 따라 변경될 수 있다.
또한, 버스 대역폭은 FIFO 로 입출력되는 데이터의 정렬을 바꾸어 조정할 수 있는 것이므로, 본 발명은 32 비트의 대역폭 이외에 임의의 대역폭에도 사용될 수 있다. 그리고, 읽기 제어기와 쓰기 제어기는 하나의 장치로 구성되어 읽기,쓰기 기능을 수행할 수도 있고, 각각의 분리된 장치로 구성되어, 개별적인 기능을 수행할 수도 있다.
또한 , 본 발명은 상기 실시예에 한정되지 않고, 본 발명의 기술적 요지를 벗어나지 않는 범위 내에서 다양하게 변형하여 실시할 수 있다.
본 발명에 의하면, AMBA 인터페이스를 이용한 DDR SDRAM 의 데이터 입출력 시에, AHB 읽기 인터페이스의 경우는 DDR SDRAM 으로부터 데이터를 읽어오는 시간 동안 AHB 를 다른 마스터들이 사용할 수 있게 놓아주고, FIFO를 이용하여 DDR SDRAM 의 데이터를 대기시간 없이 저장함으로써 AMBA 인터페이스 효율성을 증가시킬 수 있다.
또한, AHB 쓰기 인터페이스의 경우는 AHB와 쓰기 FIFO 를 바로 연결하여 대기시간이 없도록 하고, 쓰기 FIFO가 포화상태이면 AHB 를 다른 마스터들이 사용할 수 있게 놓아줌으로써 AMBA 인터페이스 효율성을 증가시킬 수 있다.

Claims (7)

  1. AMBA (Advanced Microcontroller Bus Architecture) 인터페이스를 기반으로 한 AHB (Advanced High-performance Bus) 와 반도체 메모리간의 데이터 전송을 위한 제어장치에 있어서,
    상기 AHB 를 통해 마스터로부터 제 1 쓰기 데이터를 입력받아 임시로 저장하고 정렬하여 상기 반도체 메모리로 제 2 쓰기 데이터로 출력하고, 상기 반도체 메모리로부터 제 1 읽기 데이터를 입력받아 임시로 저장하고 정렬하여 상기 AHB 를 통해 상기 마스터로 제 2 읽기 데이터로 출력하는 데이터 패스 블록; 및
    상기 반도체 메모리 및 상기 데이터 패스 블록으로부터 상태 신호를 수신하여, 상기 반도체 메모리의 응답시간에 따른 지연에 의해 상기 반도체 메모리가 데이터를 입출력할 수 없는 상태인 경우에는 SPLIT 설정 신호를 상기 AHB 로 출력하여 상기 AHB 를 다른 마스터들 중 하나로 넘겨주고, 상기 반도체 메모리가 데이터를 입출력할 수 있는 상태가 되는 경우에는 SPLIT 해제 신호를 상기 AHB 로 출력하여 상기 AHB 를 상기 다른 마스터들 중 하나로부터 상기 마스터로 얻어오는 제어블록을 포함하는, 데이터 전송 제어장치.
  2. 제 1 항에 있어서,
    상기 AHB 에서 출력하는 슬레이브의 어드레스를 입력받아 대응하는 반도체 메모리의 어드레스를 생성한 후에 상기 생성된 어드레스를 상기 반도체 메모리로 출력하는 어드레스 패스 블록을 더 포함하는, 데이터 전송 제어장치.
  3. 제 2 항에 있어서,
    상기 어드레스 패스 블록은,
    상기 AHB 로부터 입력된 어드레스를 저장하는 어드레스 저장기; 및
    상기 어드레스 저장기에 저장된 상기 어드레스를 기초로 하여 대응하는 반도체 메모리의 어드레스를 생성하고, 상기 생성된 어드레스를 상기 반도체 메모리의 어드레스 입력부로 출력하는 어드레스 생성기를 포함하는, 데이터 전송 제어장치.
  4. 제 1 항 또는 제 2 항에 있어서,
    상기 제어블록은,
    상기 AHB, 상기 어드레스 패스 블록, 및 상기 데이터 패스 블록 각각과 제어 및 상태 신호들을 입출력하는 메인 제어기;
    상기 메인 제어기로부터의 제어신호에 의해 상기 반도체 메모리를 제어하는 신호를 생성하여 상기 반도체 메모리로 출력하는 반도체 메모리 제어신호 발생기; 및
    상기 메인 제어기로부터 수신한 읽기 시작 여부 검출 신호 및 상태신호를 기초로 하여 상기 SPLIT 설정 신호 또는 상기 SPLIT 해제 신호를 상기 AHB 로 출력하는 SPLIT 응답 생성기를 포함하는, 데이터 전송 제어장치.
  5. 제 1 항 또는 제 2 항에 있어서,
    상기 데이터 패스 블록은 쓰기 데이터 패스 블록을 포함하며,
    상기 쓰기 데이터 패스 블록은 상기 마스터의 상기 제 1 쓰기 데이터를 임시로 저장하는 쓰기 FIFO 및 상기 쓰기 FIFO 로부터 출력되는 데이터를 상기 반도체 메모리의 데이터 사이즈에 맞게 정렬시켜 상기 제 2 쓰기 데이터를 출력하는 쓰기 데이터 정렬기를 포함하고,
    상기 반도체 메모리가 데이터를 입출력할 수 없는 상태는 상기 쓰기 FIFO 가 포화된 상태이고, 상기 반도체 메모리가 데이터를 입출력할 수 있는 상태는 상기 쓰기 FIFO 가 비포화된 상태인, 데이터 전송 제어장치.
  6. 제 1 항 또는 2 항에 있어서,
    상기 데이터 패스 블록은 읽기 데이터 패스 블록을 포함하며,
    상기 읽기 데이터 패스 블록은 상기 제 1 읽기 데이터를 상기 AHB 의 사이즈에 맞게 정렬하는 읽기 데이터 정렬기 및 상기 읽기 데이터 정렬기로부터 데이터를 입력받아 임시로 저장하고 상기 제 2 읽기 데이터로 출력하는 읽기 FIFO 를 포함하고,
    상기 반도체 메모리가 데이터를 입출력할 수 없는 상태는 상기 읽기 FIFO 가 비어있는 상태이고, 상기 반도체 메모리가 데이터를 입출력할 수 있는 상태는 상기 읽기 FIFO 에 하나 이상의 데이터가 저장된 상태인, 데이터 전송 제어장치.
  7. 제 1 또는 제 2 항에 있어서,
    상기 반도체 메모리는 DDR SDRAM 인, 데이터 전송 제어장치.
KR1020070043014A 2007-05-03 2007-05-03 반도체 메모리 데이터 전송 제어장치 KR100874352B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020070043014A KR100874352B1 (ko) 2007-05-03 2007-05-03 반도체 메모리 데이터 전송 제어장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070043014A KR100874352B1 (ko) 2007-05-03 2007-05-03 반도체 메모리 데이터 전송 제어장치

Publications (2)

Publication Number Publication Date
KR20080097756A true KR20080097756A (ko) 2008-11-06
KR100874352B1 KR100874352B1 (ko) 2008-12-16

Family

ID=40285506

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070043014A KR100874352B1 (ko) 2007-05-03 2007-05-03 반도체 메모리 데이터 전송 제어장치

Country Status (1)

Country Link
KR (1) KR100874352B1 (ko)

Also Published As

Publication number Publication date
KR100874352B1 (ko) 2008-12-16

Similar Documents

Publication Publication Date Title
US6701405B1 (en) DMA handshake protocol
US10423558B1 (en) Systems and methods for controlling data on a bus using latency
US6490642B1 (en) Locked read/write on separate address/data bus using write barrier
US20060004976A1 (en) Shared memory architecture
US20140240326A1 (en) Method, Apparatus, System For Representing, Specifying And Using Deadlines
US7581054B2 (en) Data processing system
JP2002049576A (ja) チップ搭載システムのためのバス・アーキテクチャ
KR101056153B1 (ko) 배리어 동작들의 조건부 브로드캐스트를 위한 방법 및 장치
US7739433B2 (en) Sharing bandwidth of a single port SRAM between at least one DMA peripheral and a CPU operating with a quadrature clock
US10255218B1 (en) Systems and methods for maintaining specific ordering in bus traffic
US10649922B2 (en) Systems and methods for scheduling different types of memory requests with varying data sizes
JP4198376B2 (ja) バスシステム及びバスシステムを含む情報処理システム
JP2004199664A (ja) 同期バスを介してサブシステムを選択的に相互接続するための動的に変化可能なクロック・ドメインを有する方法および装置
US6959354B2 (en) Effective bus utilization using multiple bus interface circuits and arbitration logic circuit
TWI540438B (zh) 記憶體控制元件
US20220214985A1 (en) Seamlessly Integrated Microcontroller Chip
Aljumah et al. Amba based advanced dma controller for soc
KR100874352B1 (ko) 반도체 메모리 데이터 전송 제어장치
CN114328350A (zh) 一种基于axi总线的通讯方法、装置以及介质
WO2001025941A1 (en) Multiprocessor computer systems with command fifo buffer at each target device
Hitanshu Optimized design of ahb multiple master slave memory controller using VHDL
US9170768B2 (en) Managing fast to slow links in a bus fabric
US9268722B1 (en) Sharing memory using processor wait states
JP4249741B2 (ja) バスシステム及びバスシステムを含む情報処理システム
JP2010140440A (ja) バス調停装置

Legal Events

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

Payment date: 20120924

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20130930

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20141010

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20151210

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20161209

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20171208

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20181210

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20191210

Year of fee payment: 12