KR20100050819A - 반도체 메모리 시스템의 동작 방법 - Google Patents

반도체 메모리 시스템의 동작 방법 Download PDF

Info

Publication number
KR20100050819A
KR20100050819A KR1020080109895A KR20080109895A KR20100050819A KR 20100050819 A KR20100050819 A KR 20100050819A KR 1020080109895 A KR1020080109895 A KR 1020080109895A KR 20080109895 A KR20080109895 A KR 20080109895A KR 20100050819 A KR20100050819 A KR 20100050819A
Authority
KR
South Korea
Prior art keywords
master
data buffer
timeout
semiconductor memory
remaining capacity
Prior art date
Application number
KR1020080109895A
Other languages
English (en)
Other versions
KR101525872B1 (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 KR1020080109895A priority Critical patent/KR101525872B1/ko
Priority to US12/613,756 priority patent/US8549181B2/en
Publication of KR20100050819A publication Critical patent/KR20100050819A/ko
Priority to US14/019,807 priority patent/US9128633B2/en
Application granted granted Critical
Publication of KR101525872B1 publication Critical patent/KR101525872B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4234Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
    • G06F13/4239Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus with asynchronous protocol
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Memory System (AREA)
  • Dram (AREA)

Abstract

본 발명의 실시예에 따른 반도체 메모리 시스템의 동작 방법은 시스템에 포함된 데이터 버퍼를 갖는 마스터들 각각의 데이터 버퍼의 잔여 용량에 기초하여 큐에 저장된 명령 수행의 우선 순위를 다이나믹하게 결정함으로써 시스템 운영의 효율성을 증가시킬 수 있다.
메모리, DRAM(Dynamic Random Access Memory), 마스터, 타임아웃, 데이터 버퍼

Description

반도체 메모리 시스템의 동작 방법{METHOD FOR OPERATING SEMICONDUCTOR MEMORY SYSTEM}
본 발명은 반도체 메모리 시스템에 관한 것으로, 보다 상세하게는 다수의 마스터들에 포함된 데이터 버퍼들의 잔여 용량에 기초하여 마스터들 각각의 반도체 메모리 장치에 명령의 수행 순서를 제어하기 위한 반도체 메모리 시스템의 동작 방법에 관한 것이다.
다수의 마스터들과 반도체 메모리 장치를 포함하는 반도체 메모리 시스템에 있어서 어느 마스터로부터 수신된 명령을 먼저 수행할 것인가를 의미하는 QoS(Quality of Service)은 시스템의 효율성 면에서 매우 중요한 문제이다.
기존의 반도체 메모리 시스템에서는 반도체 메모리 장치의 컨트롤러 내부의 타임아웃 카운터에서 다수의 마스터들 각각이 반도체 메모리 장치에 수행을 요청한 명령들에 대한 타임아웃 값을 카운팅하고 카운팅이 완료되는 순서에 기초하여 명령의 우선 순위가 결정되었다.
즉, 기존의 반도체 메모리 시스템에 있어서, 실시간으로 동작하는 것이 중시되는 마스터에 대한 타임아웃 값은 작게 설정하고, 그렇지 않은 마스터에 대한 타 임아웃 값은 크게 설정함으로써 반도체 메모리 시스템의 동작을 제어하였다. 그러나 이 경우 실시간 동작이 중시되는 마스터 내부의 데이터 버퍼의 잔여 용량에 여유가 있는 경우에는 그렇지 않은 마스터로부터 요청된 명령을 먼저 수행하는 것이 반도체 메모리 시스템의 성능에 도움을 줄 수 있다.
따라서 본 발명이 이루고자 하는 기술적인 과제는 마스터들에 대하여 고정된 타임아웃 값들을 사용하는 기존의 반도체 메모리 시스템과 달리 데이터 버퍼의 잔여 용량에 따라서 마스터의 타임아웃 값을 다르게 설정함으로써 보다 효율적으로 시스템을 운영할 수 있는 반도체 메모리 시스템의 동작 방법을 제공하는 것이다.
본 발명의 실시예에 따른 반도체 메모리 시스템은 적어도 하나의 제1 마스터(master), 적어도 하나의 제2 마스터, 및 버스를 통하여 상기 적어도 하나의 제1 마스터 및 제2 마스터와 연결되는 반도체 메모리 장치를 포함한다.
상기 기술적 과제를 달성하기 위한 반도체 메모리 시스템의 동작 방법은 상기 적어도 하나의 제1 마스터의 데이터 버퍼의 잔여 용량에 기초하여 상기 제1 마스터에 상응하는 타임아웃 인덱스 신호(timeout index signal)를 발생하는 단계; 상기 타임아웃 인덱스 신호에 응답하여 상기 적어도 하나의 제1 마스터에 상응하는 타임아웃 값을 설정하는 단계; 및 상기 적어도 하나의 제1 마스터 및 적어도 하나의 제2 마스터 각각에 대한 타임아웃 값 카운팅 결과에 기초하여 큐에 저장된 명령 수행의 우선 순위를 변경하는 단계를 포함할 수 있다.
상기 적어도 하나의 제1 마스터에 상응하는 타임아웃 인덱스 신호를 발생하는 단계는 상기 데이터 버퍼의 라이팅 포인터(writing pointer)의 위치 및 상기 데이터 버퍼의 리딩 포인터(reading pointer)의 위치 중 적어도 하나의 위치에 기초 하여 상기 데이터 버퍼의 잔여 용량을 검출하는 단계; 및 상기 데이터 버퍼의 잔여 용량 및 상기 데이터 버퍼의 잔여 용량의 임계값을 비교하고 비교 결과에 기초하여 상기 타임아웃 인덱스 신호를 발생하는 단계를 포함할 수 있다. 상기 반도체 메모리 시스템의 동작 방법은 상기 적어도 하나의 제2 마스터의 타임아웃 값을 고정된 값으로 설정하는 단계를 더 포함할 수 있다.
상기 적어도 하나의 제1 마스터의 타임아웃 값을 설정하는 단계는 상기 타임아웃 인덱스 신호에 기초하여, 상기 적어도 하나의 제1 마스터 중 하나를 선택하는 단계; 및 상기 타임아웃 인덱스 값에 상응하여 미리 정해진 다수의 타임아웃 값들 중에서 어느 하나를 상기 선택된 제1 마스터의 타임아웃 값으로 설정하는 단계를 포함할 수 있다.
상기 데이터 버퍼의 잔여 용량을 검출하는 단계는 상기 라이팅 포인터의 위치에서 상기 리딩 포인터의 위치의 차에 기초하여 상기 데이터 버퍼의 잔여 용량을 검출하는 단계를 포함할 수 있으며, 상기 타임아웃 인덱스 신호를 발생하는 단계는 상기 데이터 버퍼의 잔여 용량과 상기 데이터 버퍼의 잔여 용량의 임계값의 비교 결과에 기초하여 서로 다른 값을 갖는 타임아웃 인덱스 신호를 발생하는 단계를 포함할 수 있다.
상기 선택된 제1 마스터의 상기 반도체 메모리 장치에 대한 명령이 읽기 명령인 경우에는 상기 데이터 버퍼의 잔여 용량이 상기 데이터 버퍼의 잔여 용량의 임계값보다 크면 상기 적어도 하나의 제1 마스터의 타임아웃 값이 상기 적어도 하나의 제2 마스터의 타임아웃 값보다 크게 설정되며, 상기 데이터 버퍼의 잔여 용량 이 상기 데이터 버퍼의 잔여 용량의 임계값보다 작으면 상기 적어도 하나의 제1 마스터의 타임아웃 값이 상기 적어도 하나의 제2 마스터의 타임 아웃 값보다 작게 설정될 수 있다.
상기 선택된 제1 마스터의 상기 반도체 메모리 장치에 대한 명령이 쓰기 명령인 경우에는 상기 데이터 버퍼의 잔여 용량이 상기 데이터 버퍼의 잔여 용량의 임계값보다 크면 상기 적어도 하나의 제1 마스터의 타임아웃 값이 상기 적어도 하나의 제2 마스터의 타임아웃 값보다 작게 설정되며, 상기 데이터 버퍼의 잔여 용량이 상기 데이터 버퍼의 잔여 용량의 임계값보다 작으면 상기 적어도 하나의 제1 마스터의 타임아웃 값이 상기 적어도 하나의 제2 마스터의 타임 아웃 값보다 크게 설정될 수 있다.
상기 반도체 메모리 시스템의 동작 방법은 상기 적어도 하나의 제1 마스터의 동작 주파수와 상기 적어도 하나의 제2 마스터의 동작 주파수를 상기 반도체 메모리 장치의 구동 주파수로 동기시키는 단계를 더 포함할 수 있다. 상기 반도체 메모리 시스템의 동작 방법은 상기 타임아웃 인덱스 신호를 프로토콜 버스가 아닌 별도의 루트를 통하여 상기 제1 마스터로부터 상기 반도체 메모리 장치로 전송될 수 있다.
상술한 바와 같이 본 발명의 실시예에 따른 반도체 메모리 시스템의 동작 방법은 반도체 메모리 장치와 접속된 다수의 마스터들의 타임아웃 값들을 제어하여 상기 반도체 메모리 시스템이 처리해야할 명령의 우선 순위를 다이나믹하 게(dynamically) 결정함으로써 상기 반도체 메모리 시스템 전체의 성능을 향상시킬 수 있는 효과가 있다.
본 발명과 본 발명의 동작상의 이점 및 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시 예를 예시하는 첨부 도면 및 첨부 도면에 기재된 내용을 참조하여야만 한다.
본 명세서에 있어서는 어느 하나의 구성요소가 다른 구성요소로 데이터 또는 신호를 '전송'하는 경우에는 상기 구성요소는 상기 다른 구성요소로 직접 상기 데이터 또는 신호를 전송할 수 있고, 적어도 하나의 또 다른 구성요소를 통하여 상기 데이터 또는 신호를 상기 다른 구성요소로 전송할 수 있음을 의미한다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 설명함으로써 본 발명을 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.
도 1은 본 발명의 실시예에 따른 반도체 메모리 시스템(100)의 블락도를 나타낸다. 도 1을 참조하면, 상기 반도체 메모리 시스템(100)은 버스를 통하여 서로 접속되는 다수의 마스터들(110 내지 150) 및 메모리 컨트롤러(200)를 포함하는 반도체 메모리 장치(160)를 포함한다.
상기 다수의 마스터들(110 내지 150)은 실시간 동작이 중시되는 마스터(이하 '제1 마스터'라 함) 및 상기 메모리 장치(160)의 레이턴시(latency)에 의하여 성능이 좌우되는 마스터(이하 '제2 마스터'라 함)로 나누어질 수 있다. 제1 마스터는 실시간 동작에 대한 위험성을 보장하게 위하여 데이터 버퍼를 포함하는데, 상기 데이터 버퍼는 FIFO(First In First Out) 구조의 라인 버퍼(line buffer)일 수 있다.
예로 들면, 도 1에 도시된 반도체 메모리 시스템(100)에 있어서 실시간으로 영상을 디스플레이해야 하는 LCD(Liquid Crystal Display, 130) 및 TV(140)뿐만 아니라 실시간 응답이 요구되는 주변 기기(150) 등이 제1 마스터에 해당되며, 상기 반도체 메모리 장치(160)의 지원 속도에 기초하여 성능이 좌우되는 CPU(Central Processing Unit, 120)는 제2 마스터에 해당된다.
도 1에 도시되지는 않았으나 MFC(Multi Format Codec), 그래픽 엔진 등도 제2 마스터에 해당된다. 또한, 도 1에서는 세 개의 제1 마스터들(130 내지 150) 및 하나의 제2 마스터(120)만을 도시하였으나 본 발명의 범위가 이에 한정되는 것은 아니다.
상기 반도체 메모리 시스템(100)의 다수의 마스터들(120 내지 150) 각각은 상기 반도체 메모리 장치(160, 예컨대, DRAM(Random Access Memory))가 특정한 명령을 수행할 것을 요청하는 트랜잭션(transaction)을 발생한다. 이하에서는 도 1에 도시된 제1 마스터인 LCD(130) 및 CPU(120)에 의한 트랜잭션의 발생 및 발생된 트랜잭션의 변경에 대해 살펴본다.
도 2a는 도 1에 도시된 LCD(130)와 CPU(120)에 의하여 발생되는 트랜잭션들을 개념적으로 나타내는 타이밍도이다. 도 2a를 참조하면, 상기 LCD(130)는 영상 신호의 클락에 기초하여 일정한 간격으로 트랜잭션을 발생하는 반면, CPU(120)는 동작 상태에 따라서 불규칙적으로 트랜잭션을 발생하는 것을 알 수 있다.
도 2b는 LCD(130)의 타임아웃 값이 CPU(120)의 타임아웃 값보다 작은 경우 LCD(130)와 CPU(120)에 의하여 발생된 트랜잭션들이 변경되는 것을 나타내는 타이밍도이다. 도 2b를 참조하면, LCD(130)는 항상 CPU(120)보다 먼저 서비스(요청한 명령의 수행)를 받게 되므로 실시간 동작을 보장받지만, 서비스 시간 지체(delay1)로 인한 CPU(120)의 성능 저하가 발생하게 된다. 만약 CPU(120)의 성능 저하를 방지하기 위해서는 더 높은 주파수의 클락이 필요하다.
도 2c는 LCD(130)의 타임아웃 값이 CPU(120)의 타임아웃 값보다 큰 경우 LCD(130)와 CPU(120)에 의하여 발생된 트랜잭션들이 변경되는 것을 나타내는 타이밍도이다. 도 2c를 참조하면, CPU(120)는 성능을 보장받을 수 있으나, LCD(130)는 서비스 시간 지체(delay2)로 인한 실시간 동작 보장에 어려움을 겪을 수 있다.
본 발명의 실시예에 따른 반도체 메모리 시스템(100)은 도 2a 내지 도 2c를 참조하며 설명한 바와 같이 제어 가능한 다수의 마스터들(120 내지 150) 각각의 타임아웃 값을 제어함으로써 제1 마스터들 및 제2 마스터의 동작 성능을 동시에 보장 한다.
상기 다수의 마스터들(120 내지 150)은 각각의 타임아웃 값을 설정하기 위한 타임아웃 인덱스 신호를 발생한다. 특히, 제1 마스터들(130, 140, 및 150) 각각은 내부에 포함된 데이터 버퍼(미도시)의 잔여 용량에 기초하여 상기 상응하는 타임아웃 인덱스 신호(timeout index signal, TI1, TI2, 및 TI3)를 발생한다. 제2 마스터(120)에 대한 타임아웃 인덱스 신호(TI0)는 메모리 컨트롤러(200)에 미리 저장된 고정된 값일 수 있다.
도 3은 도 1에 도시된 LCD(130)의 잔여 용량 검출 과정을 설명하기 위한 블락도를 나타낸다. 도 3을 참조하면, 상기 LCD(130)는 레지스터(131), 데이터 버퍼(132), 잔여 용량 검출기(133), 및 비교기(134)를 포함한다.
상기 레지스터(131)는 상기 데이터 버퍼(132)의 잔여 용량의 임계값(threshold value)을 저장할 수 있다. 상기 데이터 버퍼(132)의 잔여 용량이라 함은 현재 데이터 버퍼(132)에 저장되어 있으나 아직 제1 마스터의 동작을 위하여 제공되지 않은 데이터의 용량을 의미한다. 상기 데이터 버퍼(132)의 잔여 용량의 임계값은 상기 데이터 버퍼(132)의 전체 용량에 대한 비(예컨대, 전체 용량의 25%)로 설정될 수 있다.
상기 잔여 용량 검출기(133)는 상기 데이터 버퍼(132)의 라이팅 포인터(writing pointer)의 위치(W_P) 및/또는 상기 데이터 버퍼(132)의 리딩 포인터(reading pointer)의 위치(R_P)에 기초하여 상기 데이터 버퍼(132)의 잔여 용량을 검출할 수 있다. 즉, 상기 잔여 용량 검출기(133)는 상기 라이팅 포인터의 위치(W_P)에서 상기 리딩 포인터의 위치(R_P)의 차에 기초하여 상기 데이터 버퍼(132)의 잔여 용량을 검출할 수 있다.
상기 비교기(134)는 상기 데이터 버퍼(132)의 잔여 용량과 상기 데이터 버퍼(132)의 잔여 용량의 임계값(THD)의 비교 결과에 기초하여 서로 다른 값을 갖는 타임아웃 인덱스 값(TI1)을 발생할 수 있다.
도 4는 도 1에 도시된 메모리 컨트롤러(200)의 블락도를 나타낸다. 상기 메모리 컨트롤러(200)는 상기 타임아웃 인덱스 신호(TI0 내지 TI3)에 응답하여 상기 마스터들(120 내지 150) 각각의 타임아웃 값을 설정하며, 상기 마스터들(120 내지 150) 각각의 타임아웃 값에 대한 카운팅 결과에 기초하여 큐(queue, 240)에 저장된 명령 수행의 우선 순위를 변경할 수 있다.
도 4를 참조하면, 상기 메모리 컨트롤러(200)는 동기 로직(210), 레지스터 블락(220), 타임아웃 카운터(230), 및 큐(240)를 포함한다. 상기 동기 로직(210)은 상기 제1 마스터들(130 내지 150) 각각의 동작 주파수를 상기 반도체 메모리 장치(160)의 구동 주파수로 동기시킬 수 있다. 이로 인하여 상기 반도체 메모리 시스템(100)은 서로 동작 주파수가 다른 마스터들에 대해서도 효율적인 동작을 수행할 수 있다.
상기 레지스터 블락(220)은 상기 동기 로직(210)으로부터 출력되는 타임아웃 인덱스 신호에 응답하여 상기 마스터들(120 내지 150) 각각에 대한 타임아웃 값들을 설정한다. 도 5는 도 4에 도시된 레지스터 블락(220)을 개념적으로 나타낸 것이다. 도 5를 참조하면, 상기 레지스터 블락(220)은 각각이 상기 마스터들(120 내지 150)에 상응하는 레지스터들(222 내지 228)을 포함한다. 도 5에서는 도 1에 도시된 네 개의 마스터들(120)에 상응하는 레지스터들만 도시되었으나 본 발명의 범위가 이에 한정되는 것은 아니다.
도 5를 참조하면, 다수의 마스터들(120 내지 150)은 각각이 속하는 그룹 아이디(IDentification, 222a), 동일 그룹 내에서 상기 상응하는 마스터를 식별하기 위한 그룹 마스크(mask, 222b)에 의하여 구별될 수 있다. 예를 들면, 첫 번째 그룹의 첫 번째 마스터는 그룹 아이디 이진수 "00"과 그룹 마스크 이진수"01"의 조합에 의하여 "0001"로 나타낼 수 있으며, 두 번째 마스터 그룹의 세 번째 마스터는 그룹 아이디 이진수 "01"과 그룹 마스크 이진수"11"의 조합에 의하여 "0111"로 나타낼 수 있다.
도 5를 참조하면, 상기 레지스터들(222 내지 228) 각각은 상응하는 마스터의 타임아웃 값들(타임아웃1 및 타임아웃2, 222c 및 222d)을 저장하고 있다. 도 5에서는 상기 레지스터들(222 내지 228) 각각에 두 개의 타임아웃 값들만이 저장되는 것으로 도시되었으나 본 발명의 범위가 이에 한정되는 것은 아니다.
즉, 제1 마스터는 내부의 데이터 버퍼의 잔여 용량에 기초하여 두 개 이상의 서로 다른 다수의 타임아웃 값들을 가질 수 있다. 제1 마스터에 대한 다수의 타임아웃 값들은 반도체 메모리 시스템(100)의 구조에 따라서 미리 정해진 값이며, 동작 환경에 따라 가변되어 업데이트될 수 있다. 그러나 제2 마스터는 고정된 하나의 타임아웃 값만을 가지면 된다.
도 5를 참조하여 설명한 바와 같이, 상기 래지스터 블락(220)은 타임아웃 인덱스 신호에 기초하여 타임아웃 값을 설정할 마스터를 선택하고, 상기 타임아웃 인덱스 값에 상응하여 미리 정해진 다수의 타임아웃 값들 중에서 어느 하나를 상기 선택된 제1 마스터의 타임아웃 값으로 선택하여 출력할 수 있다. 다만, 제2 마스터는 고정된 타임아웃 인덱스 값과 고정된 타임아웃 값을 가짐이 바람직하다.
도 3 내지 도 5를 참조하여 제1 마스터들(130 내지 150) 각각에 대한 타임아웃 값 설정 과정을 구체적으로 살펴본다. 먼저, 제1 마스터들(130 내지 150) 중 하나의 상기 반도체 메모리 장치(160)에 대한 명령이 읽기 명령인 경우를 살펴본다.
데이터 버퍼(132)의 잔여 용량이 상기 데이터 버퍼(132)의 잔여 용량의 임계값(THD)보다 크면 제1 마스터의 타임아웃 값은 제2 마스터의 타임아웃 값보다 크게설정된다. 이는 상기 데이터 버퍼(132)에는 제1 마스터의 동작을 위하여 제공될 데이터가 제1 마스터의 실시간 동작을 소정의 시간 동안 방해하지 않을 정도로 저장되어 있으므로, 제2 마스터로부터 요청된 명령이 먼저 수행됨을 의미한다.
그러나 상기 데이터 버퍼(132)의 잔여 용량이 상기 데이터 버퍼(132)의 잔여 용량의 임계값(THD)보다 작으면 제1 마스터의 타임아웃 값은 제2 마스터의 타임 아웃 값보다 작게 설정된다. 이는 상기 데이터 버퍼(132)에 저장된 제1 마스터의 동작을 위하여 제공될 데이터의 양이 제1 마스터의 실시간 동작을 방해할 정도로 적기 때문에 제1 마스터로부터 요청된 읽기 명령이 먼저 수행되어 상기 데이터 버퍼(132)에 데이터가 더 쓰여져야 함을 의미한다.
다음으로, 제1 마스터들(130 내지 150) 중 하나의 상기 반도체 메모리 장치(160)에 대한 명령이 쓰기 명령인 경우를 살펴본다. 상기 데이터 버퍼(132)의 잔여 용량이 상기 데이터 버퍼(132)의 잔여 용량의 임계값(THD)보다 크면 제1 마스터의 타임아웃 값이 제2 마스터의 타임아웃 값보다 작게 설정되며, 상기 데이터 버퍼(132)의 잔여 용량이 상기 데이터 버퍼(132)의 잔여 용량의 임계값(THD)보다 작으면 제1 마스터의 타임아웃 값이 제2 마스터의 타임 아웃 값보다 크게 설정된다.
표 1은 도 1의 반도체 메모리 시스템(100)의 다수의 마스터들(120 내지 150)의 타임아웃 값들의 일예를 나타낸다.
Figure 112008076998977-PAT00001
표 1을 참조하면, 메모리 컨트롤러(200)의 동작 클락 사이클 기준으로 CPU(120)의 타임아웃 값을 10 사이클로 고정되고, LCD(130)와 TV(140) 각각의 제1 타임아웃 값은 2 사이클, 제2 타임아웃 값을 50 사이클로 설정되며, 주변 기기(150)의 제1 타임아웃 값은 5 사이클, 제2 타임아웃 값을 256 사이클로 설정되었음을 알 수 있다.
이하에서는 도 1 도 2 내지 도 5를 참조하여 상기 LCD(130)의 반도체 메모리 장치(160)에 대한 명령이 읽기 명령인 경우에 있어서, 상기 LCD(130)의 타임아웃 값 설정 과정을 구체적으로 살펴본다.
CPU(120)의 타임아웃 값은 항상 10 사이클로 고정되어 있으며, 상기 LCD(130)의 타임아웃 값이 가변된다. LCD(130)는 데이터 버퍼(132)의 잔여 용량이 상기 데이터 버퍼(132)의 잔여 용량의 임계값(THD)보다 크면 타임아웃 인덱스 신호 로직 "1"을 발생한다.
그러면 레지스터 블락(220)은 타임아웃 인덱스 신호 로직 "1"에 응답하여 제2 타임아웃 값 50 사이클을 발생한다. 이는 상기 CPU(120)의 타임아웃 값 10 사이클보다 큰 값이다. 그러므로 상기 데이터 버퍼(132)의 잔여 용량에 여유가 있는 경우에는 상기 CPU(120)가 요청한 명령이 상기 LCD(130)가 요청한 명령보다 우선 순위가 된다.
그러나 상기 데이터 버퍼(132)의 잔여 용량이 상기 데이터 버퍼(132)의 잔여 용량의 임계값(THD)보다 작으면 상기 LCD(130)는 타임아웃 인덱스 신호 로직 "0"을 발생한다. 그러면 레지스터 블락(220)은 타임아웃 인덱스 신호 로직 "0"에 응답하여 제1 타임아웃 값 2 사이클을 발생한다. 이는 상기 CPU(120)의 타임아웃 값 10 사이클보다 작은 값이다. 그러므로 상기 데이터 버퍼(132)의 잔여 용량에 여유가 없는 경우에는 상기 LCD(130)가 요청한 명령이 상기 CPU(120)가 요청한 명령보다 우선 순위가 된다.
상기 타임아웃 카운터(230)는 다수의 마스터들(120 내지 150) 각각의 타임아웃 값을 카운팅하며, 카운팅 결과를 상기 큐(240)으로 출력할 수 있다. 그러면 상기 큐(240)는 저장된 명령 수행의 우선 순위를 변경함으로써 제1 마스터들과 제2 마스터의 효율적인 동작을 가능케 한다.
도 6은 본 발명의 실시예에 따른 반도체 메모리 시스템(100)의 동작 방법을 설명하기 위한 순서도이다. 이하 도 1 및 도 3 내지 도 6을 참조하여 그 과정을 구체적으로 살펴본다.
제1 마스터는 데이터 버퍼(132)의 잔여 용량을 검출하며(S60), 검출된 데이터 버퍼(132)의 잔여 용량과 레지스터(131)에 저장된 데이터 버퍼(132)의 잔여 용량의 임계값(THD)을 비교하고 그 비교 결과에 기초하여 상기 제1 마스터에 상응하는 타임아웃 인덱스 신호를 발생한다(S61). 상기 제1 마스터에 상응하는 타임아웃 인덱스 신호는 상기 비교 결과에 따라서 서로 다른 값을 가질 수 있다.
메모리 컨트롤러(200)의 레지스터 블락(220)은 상기 제1 마스터에 상응하는 타임아웃 인덱스 신호에 기초하여 상기 제1 마스터의 타임아웃 값을 설정하여 출력한다(S62). 이때, 상기 레지스터 블락(220)은 미리 설정된 타임아웃 인덱스 신호에 응답하여 고정된 제2 마스터의 타임아웃 값을 출력한다.
그러면 타임아웃 카운터(230)는 상기 레지스터 블락(220)으로부터 출력되는 다수의 마스터들(120 내지 150)에 대하여 타임아웃 값들을 카운팅하며 각각의 마스터들(120 내지 150)에 대한 카운팅 완료를 큐(240)으로 알린다(S63). 상기 큐(240)는 상기 타임아웃 카운터(230)로부터 수신되는 카운팅 결과에 기초하여 저장된 명령 수행의 우선 순위를 변경하며(S64), 반도체 메모리 장치(160)는 변경된 명령 수행의 우선 순위에 기초하여 명령을 수행한다(S65).
도 7은 도 6에 도시된 과정 중에서 제1 마스터의 타임아웃 값이 설정되는 단계를 설명하기 위한 순서도이다. 이하 도 1 및 도 3 내지 도 7을 참조하여 그 과정을 구체적으로 살펴본다.
상기 반도체 메모리 시스템(100)은 제1 마스터의 상기 반도체 메모리 장치(160)에 대한 명령이 읽기 명령인지 여부를 판단한다(S71). 상기 반도체 메모리 시스템(100)은 제1 마스터의 상기 반도체 메모리 장치(160)에 대한 명령이 읽기 명령이고 데이터 버퍼(132)의 잔여 용량이 상기 데이터 버퍼(132)의 잔여 용량의 임계값(THD)보다 큰지 여부를 판단한다(S72).
상기 반도체 메모리 시스템(100)은 데이터 버퍼(132)의 잔여 용량이 상기 데이터 버퍼(132)의 잔여 용량의 임계값(THD)보다 크면 상기 제1 마스터의 타임아웃 값이 제2 마스터의 타임아웃 값보다 크게 설정하며(S73), 그렇지 않으면 제1 마스터의 타임아웃 값이 상기 적어도 하나의 제2 마스터의 타임 아웃 값보다 작게 설정한다(S74).
상기 반도체 메모리 장치(160)에 대한 명령이 읽기 명령이 아니면, 즉, 쓰기 명령이면, 상기 반도체 메모리 시스템(100)은 제1 마스터의 데이터 버퍼(132)의 잔여 용량이 상기 데이터 버퍼(132)의 잔여 용량의 임계값(THD)보다 큰지 여부를 판단한다(S75).
읽기 명령일 때와 반대로 쓰기 명령일 경우에, 상기 반도체 메모리 시스템(100)은 데이터 버퍼(132)의 잔여 용량이 상기 데이터 버퍼(132)의 잔여 용량의 임계값(THD)보다 크면 상기 제1 마스터의 타임아웃 값이 제2 마스터의 타임아웃 값보다 작게 설정하며(S74), 그렇지 않으면 제1 마스터의 타임아웃 값이 상기 적어도 하나의 제2 마스터의 타임 아웃 값보다 크게 설정한다(S73).
본 발명의 실시예에 따른 반도체 메모리 시스템(100)의 동작 방법은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현될 수 있다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다.
예컨대, 컴퓨터가 읽을 수 있는 기록매체에는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장장치 등이 있으며, 또한 본 발명의 실시예에 따른 반도체 메모리 시스템(100)의 동작 방법을 수행하기 위한 프로그램 코드는 캐리어 웨이브(예를 들어, 인터넷을 통한 전송)의 형태로 전송될 수도 있다.
또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고 본 발명의 실시예에 따른 반도체 메모리 시스템(100)의 동작 방법을 구현하기 위한 기능적인 (functional) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술분야의 프로그래머들에 의해 용이하게 추론될 수 있다.
발명은 도면에 도시된 일 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
도 1은 본 발명의 실시예에 따른 반도체 메모리 장치의 블락도를 나타낸다.
도 2a는 도 1에 도시된 LCD와 CPU에 의하여 발생되는 트랜잭션들을 개념적으로 나타내는 타이밍도이다.
도 2b는 LCD의 타임아웃 값이 CPU의 타임아웃 값보다 작은 경우 LCD와 CPU에 의하여 발생된 트랜잭션들이 변경되는 것을 나타내는 타이밍도이다.
도 2c는 LCD의 타임아웃 값이 CPU의 타임아웃 값보다 큰 경우 LCD와 CPU에 의하여 발생된 트랜잭션들이 변경되는 것을 나타내는 타이밍도이다.
도 3은 도 1에 도시된 LCD의 잔여 용량 검출 과정을 설명하기 위한 블락도를 나타낸다.
도 4는 도 1에 도시된 메모리 컨트롤러의 블락도를 나타낸다.
도 5는 도 4에 도시된 레지스터 블락을 개념적으로 나타낸 것이다.
도 6은 본 발명의 실시예에 따른 반도체 메모리 시스템의 동작 방법을 설명하기 위한 순서도이다.
도 7은 도 6에 도시된 과정 중에서 제1 마스터의 타임아웃 값이 설정되는 단계를 설명하기 위한 순서도이다.

Claims (10)

  1. 적어도 하나의 제1 마스터(master), 적어도 하나의 제2 마스터, 및 버스를 통하여 상기 적어도 하나의 제1 마스터 및 제2 마스터와 연결되는 반도체 메모리 장치를 포함하는 반도체 메모리 시스템에 있어서,
    상기 적어도 하나의 제1 마스터의 데이터 버퍼의 잔여 용량에 기초하여 상기 제1 마스터에 상응하는 타임아웃 인덱스 신호(timeout index signal)를 발생하는 단계;
    상기 타임아웃 인덱스 신호에 응답하여 상기 적어도 하나의 제1 마스터에 상응하는 타임아웃 값을 설정하는 단계; 및
    상기 적어도 하나의 제1 마스터 및 적어도 하나의 제2 마스터 각각에 대한 타임아웃 값 카운팅 결과에 기초하여 큐에 저장된 명령 수행의 우선 순위를 변경하는 단계를 포함하는 반도체 메모리 시스템 동작 방법.
  2. 제1항에 있어서, 상기 적어도 하나의 제1 마스터에 상응하는 타임아웃 인덱스 신호를 발생하는 단계는
    상기 데이터 버퍼의 라이팅 포인터(writing pointer)의 위치 및 상기 데이터 버퍼의 리딩 포인터(reading pointer)의 위치 중 적어도 하나의 위치에 기초하여 상기 데이터 버퍼의 잔여 용량을 검출하는 단계; 및
    상기 데이터 버퍼의 잔여 용량 및 상기 데이터 버퍼의 잔여 용량의 임계값을 비교하고 비교 결과에 기초하여 상기 타임아웃 인덱스 신호를 발생하는 단계를 포함하는 반도체 메모리 시스템의 동작 방법.
  3. 제2항에 있어서, 상기 반도체 메모리 시스템의 동작 방법은
    상기 적어도 하나의 제2 마스터의 타임아웃 값을 고정된 값으로 설정하는 단계를 더 포함하는 반도체 메모리 시스템의 동작 방법.
  4. 제3항에 있어서, 상기 적어도 하나의 제1 마스터의 타임아웃 값을 설정하는 단계는
    상기 타임아웃 인덱스 신호에 기초하여, 상기 적어도 하나의 제1 마스터 중 하나를 선택하는 단계; 및
    상기 타임아웃 인덱스 값에 상응하여 미리 정해진 다수의 타임아웃 값들 중에서 어느 하나를 상기 선택된 제1 마스터의 타임아웃 값으로 설정하는 단계를 포함하는 반도체 메모리 시스템의 동작 방법.
  5. 제4항에 있어서, 상기 데이터 버퍼의 잔여 용량을 검출하는 단계는
    상기 라이팅 포인터의 위치에서 상기 리딩 포인터의 위치의 차에 기초하여 상기 데이터 버퍼의 잔여 용량을 검출하는 단계를 포함하며,
    상기 타임아웃 인덱스 신호를 발생하는 단계는
    상기 데이터 버퍼의 잔여 용량과 상기 데이터 버퍼의 잔여 용량의 임계값의 비교 결과에 기초하여 서로 다른 값을 갖는 타임아웃 인덱스 신호를 발생하는 단계를 포함하는 반도체 메모리 시스템의 동작 방법.
  6. 제5항에 있어서, 상기 선택된 제1 마스터의 상기 반도체 메모리 장치에 대한 명령이 읽기 명령인 경우에는
    상기 데이터 버퍼의 잔여 용량이 상기 데이터 버퍼의 잔여 용량의 임계값보다 크면 상기 적어도 하나의 제1 마스터의 타임아웃 값이 상기 적어도 하나의 제2 마스터의 타임아웃 값보다 크게 설정되며,
    상기 데이터 버퍼의 잔여 용량이 상기 데이터 버퍼의 잔여 용량의 임계값보다 작으면 상기 적어도 하나의 제1 마스터의 타임아웃 값이 상기 적어도 하나의 제2 마스터의 타임 아웃 값보다 작게 설정되는 단계를 포함하는 반도체 메모리 시스템의 동작 방법.
  7. 제5항에 있어서, 상기 선택된 제1 마스터의 상기 반도체 메모리 장치에 대한 명령이 쓰기 명령인 경우에는
    상기 데이터 버퍼의 잔여 용량이 상기 데이터 버퍼의 잔여 용량의 임계값보다 크면 상기 적어도 하나의 제1 마스터의 타임아웃 값이 상기 적어도 하나의 제2 마스터의 타임아웃 값보다 작게 설정되며,
    상기 데이터 버퍼의 잔여 용량이 상기 데이터 버퍼의 잔여 용량의 임계값보다 작으면 상기 적어도 하나의 제1 마스터의 타임아웃 값이 상기 적어도 하나의 제 2 마스터의 타임 아웃 값보다 크게 설정되는 단계를 포함하는 반도체 메모리 시스템의 동작 방법.
  8. 제3항에 있어서, 상기 반도체 메모리 시스템의 동작 방법은
    상기 적어도 하나의 제1 마스터의 동작 주파수와 상기 적어도 하나의 제2 마스터의 동작 주파수를 상기 반도체 메모리 장치의 구동 주파수로 동기시키는 단계를 더 포함하는 반도체 메모리 시스템의 동작 방법.
  9. 제7항에 있어서, 상기 반도체 메모리 시스템의 동작 방법은
    상기 타임아웃 인덱스 신호를 프로토콜 버스가 아닌 별도의 루트를 통하여 상기 제1 마스터로부터 상기 반도체 메모리 장치로 전송하는 단계를 더 포함하는 반도체 메모리 시스템의 동작 방법.
  10. 제1항 내지 제9항 중 어느 한 항에 기재된 반도체 메모리 시스템의 동작 방법을 실행하기 위한 컴퓨터 프로그램을 저장하는 컴퓨터로 읽을 수 있는 기록 매체.
KR1020080109895A 2008-11-06 2008-11-06 반도체 메모리 시스템의 동작 방법 KR101525872B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020080109895A KR101525872B1 (ko) 2008-11-06 2008-11-06 반도체 메모리 시스템의 동작 방법
US12/613,756 US8549181B2 (en) 2008-11-06 2009-11-06 Semiconductor memory device and method of operating the semiconductor memory device
US14/019,807 US9128633B2 (en) 2008-11-06 2013-09-06 Semiconductor memory device and method of operating the semiconductor memory device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080109895A KR101525872B1 (ko) 2008-11-06 2008-11-06 반도체 메모리 시스템의 동작 방법

Publications (2)

Publication Number Publication Date
KR20100050819A true KR20100050819A (ko) 2010-05-14
KR101525872B1 KR101525872B1 (ko) 2015-06-04

Family

ID=42132848

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080109895A KR101525872B1 (ko) 2008-11-06 2008-11-06 반도체 메모리 시스템의 동작 방법

Country Status (2)

Country Link
US (2) US8549181B2 (ko)
KR (1) KR101525872B1 (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102298580A (zh) * 2010-06-22 2011-12-28 Sap股份公司 使用异步缓冲器的多核查询处理
US8538845B2 (en) 2011-06-03 2013-09-17 Mozido, Llc Monetary transaction system
US9141561B2 (en) * 2012-10-25 2015-09-22 Texas Instruments Incorporated Master circuits having dynamic priority leads coupled with memory controller
US10152237B2 (en) 2016-05-05 2018-12-11 Micron Technology, Inc. Non-deterministic memory protocol
US10534540B2 (en) 2016-06-06 2020-01-14 Micron Technology, Inc. Memory protocol
KR102560229B1 (ko) 2016-06-29 2023-07-27 삼성전자주식회사 전자 시스템 및 이의 동작 방법
KR102635134B1 (ko) * 2016-06-30 2024-02-08 에스케이하이닉스 주식회사 메모리 컨트롤러, 비동기식 메모리 버퍼칩 및 이를 포함하는 메모리 시스템
US11003602B2 (en) 2017-01-24 2021-05-11 Micron Technology, Inc. Memory protocol with command priority
CN108920264B (zh) * 2018-06-12 2020-08-28 深圳市德明利技术股份有限公司 一种命令超时处理方法及系统

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2703668B2 (ja) * 1991-03-18 1998-01-26 株式会社日立製作所 データ転送制御装置および磁気ディスク制御装置
US7023840B2 (en) * 2001-02-17 2006-04-04 Alcatel Multiserver scheduling system and method for a fast switching element
US6952753B2 (en) * 2002-06-03 2005-10-04 Sun Microsystems, Inc. Device driver with improved timeout performance
US7050940B2 (en) * 2004-03-17 2006-05-23 International Business Machines Corporation Method and system for maintaining and examining timers for network connections
KR100700156B1 (ko) * 2006-02-22 2007-03-28 삼성전자주식회사 다이나믹 메모리의 리프레쉬 컨트롤러, 이를 포함하는반도체 시스템 및 다이나믹 메모리의 리프레쉬 제어 방법.
US7587547B2 (en) * 2006-03-30 2009-09-08 Intel Corporation Dynamic update adaptive idle timer
US8001549B2 (en) * 2006-04-27 2011-08-16 Panasonic Corporation Multithreaded computer system and multithread execution control method
US8001080B2 (en) * 2006-09-12 2011-08-16 Infosys Technologies Ltd. Managing real-time execution of transactions in a network

Also Published As

Publication number Publication date
US8549181B2 (en) 2013-10-01
US20100115142A1 (en) 2010-05-06
US9128633B2 (en) 2015-09-08
US20140006648A1 (en) 2014-01-02
KR101525872B1 (ko) 2015-06-04

Similar Documents

Publication Publication Date Title
KR20100050819A (ko) 반도체 메모리 시스템의 동작 방법
JP4457168B2 (ja) 資源要求調停装置、資源要求調停方法、及び、コンピュータプログラム
US20070162637A1 (en) Method, apparatus and program storage device for enabling multiple asynchronous direct memory access task executions
JP2011505037A (ja) 読出しデータバッファリングのシステム及び方法
US6754786B2 (en) Memory control circuit and method for arbitrating memory bus
JP2011150397A (ja) バス調停装置
US7617344B2 (en) Methods and apparatus for controlling access to resources in an information processing system
JPWO2006001245A1 (ja) 低バンド幅で局所集中アクセスを保証する調停装置、調停方法、及び調停装置を含む動画処理装置
JP2009277096A (ja) Dma制御システム、印刷装置、および転送指示プログラム
TW202009731A (zh) 具有分散式信箱架構的多處理器系統及其處理器錯誤檢查方法
TW200525364A (en) Driver transparent message signaled interrupts
JP5532849B2 (ja) コンピュータ、プロセス間通信プログラム、およびプロセス間通信方法
WO2013148439A1 (en) Hardware managed allocation and deallocation evaluation circuit
JP2017184175A (ja) 情報生成プログラム、情報生成方法及び情報生成装置
US20060218313A1 (en) DMA circuit and computer system
US10713188B2 (en) Inter-process signaling system and method
US20020004861A1 (en) DMA controller in which bus access ratio can be set
CN114328350A (zh) 一种基于axi总线的通讯方法、装置以及介质
US20100131677A1 (en) Data transfer device and data transfer method
US11886367B2 (en) Arbitration allocating requests during backpressure
JP2000276437A (ja) Dma制御装置
JP2002049580A (ja) バス管理装置、バス使用要求送信装置、バス管理方法、及びバス使用要求送信方法
JP2004005589A (ja) 資源要求調停装置、資源要求調停方法、及び、コンピュータプログラム
JP2003016024A (ja) メモリ制御装置及びlsi
JP4898527B2 (ja) リソース使用管理装置、リソース使用管理システム及びリソース使用管理装置の制御方法

Legal Events

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

Payment date: 20180430

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190429

Year of fee payment: 5