KR20130121105A - 스트림 트랜잭션 정보에 기초하여 페이지 관리 정책들을 적용하기 위한 메모리 제어기들, 시스템들 및 방법들 - Google Patents

스트림 트랜잭션 정보에 기초하여 페이지 관리 정책들을 적용하기 위한 메모리 제어기들, 시스템들 및 방법들 Download PDF

Info

Publication number
KR20130121105A
KR20130121105A KR1020137011949A KR20137011949A KR20130121105A KR 20130121105 A KR20130121105 A KR 20130121105A KR 1020137011949 A KR1020137011949 A KR 1020137011949A KR 20137011949 A KR20137011949 A KR 20137011949A KR 20130121105 A KR20130121105 A KR 20130121105A
Authority
KR
South Korea
Prior art keywords
memory
page
stream
management policy
controller
Prior art date
Application number
KR1020137011949A
Other languages
English (en)
Other versions
KR101881089B1 (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 KR20130121105A publication Critical patent/KR20130121105A/ko
Application granted granted Critical
Publication of KR101881089B1 publication Critical patent/KR101881089B1/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/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • 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/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1689Synchronisation and timing concerns
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0215Addressing or allocation; Relocation with look ahead addressing means

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

스트림 트랜잭션 정보에 기초하여 페이지 관리 정책(들)을 적용하기 위한 메모리 제어기들, 시스템들, 방법들 및 컴퓨터 판독가능 매체가 개시된다. 일 실시예에서, 메모리 제어기는 스트림 트랜잭션들을 위한 메모리 액세스 요청들을 수신하도록 제공되고 구성된다. 메모리 제어기는 메모리 액세스 스트림 트랜잭션에 포함되는 메모리 내의 메모리 페이지(들)로의 메모리 액세스를 수행하도록 구성된다. 제어기는 스트림 트랜잭션들과 관련된 정보에 기초하여 메모리 내의 메모리 페이지(들)에 페이지 관리 정책(들)을 적용하도록 추가로 구성된다. 이러한 방식으로, 페이지 관리 정책(들)은 효율성을 위해서 스트림 트랜잭션들이 용이하게 할 수 있는 페이지 오픈 정책들을 이용하도록 구성될 수 있지만, 페이지 관리 정책에서는, 메모리 제어기가 상이한 디바이스들로부터의 메모리 액세스 요청들을 핸들링하고 있을 때 발생할 수 있는 레이턴시 문제들을 또한 인지하고 고려한다.

Description

스트림 트랜잭션 정보에 기초하여 페이지 관리 정책들을 적용하기 위한 메모리 제어기들, 시스템들 및 방법들{MEMORY CONTROLLERS, SYSTEMS, AND METHODS FOR APPLYING PAGE MANAGEMENT POLICIES BASED ON STREAM TRANSACTION INFORMATION}
본 출원은 2010년 10월 8일자로 출원된 "ARBITRATING BUS COMMUNICATIONS BASED ON INFORMATION RELATED TO A STREAM TRANSACTION(S)"이라는 명칭의 공동-계류중인 미국 특허 출원 변리사 도켓 번호 100742, 고객 번호 23696에 관한 것이며, 상기 미국 특허 출원은 그 전체 내용이 본 명세서에 인용에 의해 포함된다.
본 개시의 기술은 일반적으로, 메모리 액세스 제어기들에 관한 것으로, 프로세서-기반 시스템에서의 메모리 페이지 관리 정책들에 관한 것이다.
중앙 처리 유닛(CPU) 기반 시스템들을 포함하는 프로세서-기반 시스템들에 대하여, 시스템 메모리에 대한 동적 메모리를 사용하는 것은 일반적이다. 통상적으로, 동적 메모리는 또한 "동적 랜덤 액세스 메모리" 또는 "DRAM"으로 지칭된다. 전형적으로, 동적 메모리는 다수의 메모리 뱅크들로 조직화되며, 각각의 메모리 뱅크는 다수의 메모리 페이지들을 포함한다. 동적 메모리에 액세스하는 것은 2개의 별개의 태스크들을 포함하는데, 이들 둘 다는 프로세싱 시간을 소비할 수 있다. 첫 번째로, 액세스될 메모리 뱅크 내의 원하는 메모리 위치에 대응하는 메모리 페이지(즉, 행)가 오픈된다. 이것은 또한 2차원 행 및 열의 메모리 배열을 지칭하는 "행 선택"으로 알려져 있다. 두 번째로, 메모리 페이지(즉, 열) 내의 원하는 메모리 위치가 액세스된다. 이것은 또한 "열 선택"으로 알려져 있다. 액세스된 메모리 위치를 포함하는 메모리 페이지는 다른 메모리 페이지가 동일한 메모리 뱅크에서 오픈될 수 있기 전에 폐쇄되어야 한다. 이것은 메모리 액세스들을 포함하는 트랜잭션들에서 감소된 대역폭 및 증가된 레이턴시(즉, 프로세싱 시간) 둘 다에 관하여 CPU 성능에 영향을 미칠 수 있는 증가된 메모리 액세스 시간들을 초래할 수 있다.
메모리 액세스 시간들 및 레이턴시를 감소시키기 위해서, 메모리 제어기들은 메모리 액세스 이후 메모리 페이지를 오픈 상태로 유지하기 위한 전반적인 메모리 페이지 관리 정책으로 구성될 수 있다. 새로운 메모리 페이지를 타겟으로 하는 계류중인 메모리 액세스 요청을 서비스하고, 예들로서, 자동-리프레쉬 또는 셀프-리프레쉬와 같은 메모리 유지 커맨드들을 수행하도록 요구되는 경우, 오픈 상태 유지 메모리 페이지 관리 정책은 단지 메모리 페이지를 폐쇄한다. 액세스 이후 메모리 페이지를 오픈 상태로 유지하도록 메모리 제어기를 구성하는 것은 예로서, 이를테면, 멀티미디어 애플리케이션들 또는 프로세서들에 의해 특정 메모리 애플리케이션들, 특히, 랜덤하지 않은 순차적 메모리 위치 액세스들을 포함하는 것들에 대하여 유리할 수 있다. 이러한 시나리오들에서, 순차적 메모리 액세스들은 종종 동일한 메모리 페이지에 대한 것이다. 메모리 뱅크 내의 동일한 메모리 페이지로의 다음의 메모리 액세스 전에 메모리 뱅크에 대한 메모리 페이지를 폐쇄하지 않음으로써 프로세싱 시간이 절약된다. 그러나, 메모리 페이지들을 오픈 상태로 유지하기 위한 메모리 페이지 관리 정책을 제공함으로써 트레이드오프가 존재한다. 메모리 뱅크로의 순차적 메모리 액세스들이 상이한 메모리 페이지들에 대한 것인 경우 프로세싱 시간 페널티가 초래된다. 예를 들어, 메모리 제어기가 메모리 뱅크 내의 현재 오픈된 메모리 페이지와 상이한 메모리 페이지에 액세스하기 위한 요청을 수신하는 경우, 메모리 제어기는 새로운 메모리 페이지가 오픈될 수 있기 전에 현재 오픈된 메모리 페이지를 폐쇄하여야 한다. 새로운 메모리 페이지가 액세스될 수 있기 전에 현재 오픈된 메모리 페이지를 폐쇄할 시에 초래되는 추가적인 프로세싱 시간은 레이턴시를 증가시킬 수 있다. 메모리 페이지를 오픈 상태로 유지하는 메모리 페이지 관리 정책을 사용하는 다른 트레이드오프는 액세스 이후 메모리 페이지를 오픈 상태로 유지하도록 소비되는 추가적인 전력이다.
상세한 설명에서 개시되는 실시예들은 스트림 트랜잭션 정보에 기초하여 페이지 관리 정책(들)을 적용하기 위한 메모리 제어기들, 시스템들, 방법들, 및 컴퓨터 판독가능 매체를 포함한다. 이와 관련하여, 일 실시예에서, 메모리 제어기가 제공된다. 메모리 제어기는 스트림 트랜잭션들을 위한 메모리 액세스 요청들을 수신하도록 구성되는 제어기를 포함한다. 스트림 트랜잭션은 데이터의 효율적 벌크 전달들을 용이하게 하기 위한 버스트 액세스 타입들의 수퍼세트(superset)이다. 메모리 제어기는 또한 단일 버스트 및 단일 비트(beat) 액세스 타입들과 같은 비-스트림 트랜잭션들을 위한 메모리 액세스 요청들을 수신하도록 구성된다. 메모리 제어기는 스트림 트랜잭션들에 의해 특정되는 메모리 내의 메모리 페이지들로의 메모리 액세스들을 수행하도록 구성된다. 제어기는 스트림 트랜잭션들과 관련된 정보에 기초하여 메모리에 페이지 관리 정책(들)을 적용하도록 추가로 구성된다. 예들로서, 스트림 트랜잭션 정보는 계류중인 스트림 트랜잭션들의 진행 뿐만 아니라, 추후에 액세스될 것인 메모리에서의 주소 범위들에 대한 정보를 제공할 수 있다. 이러한 방식으로, 페이지 관리 정책(들)은 스트림 트랜잭션들을 이용할 때 효율성을 위해서 구성될 수 있다. 메모리 제어기가 상이한 디바이스들로부터의 다수의 메모리 액세스 요청들(스트림 트랜잭션들을 포함함)을 핸들링하고 있을 때 발생할 수 있는 레이턴시 문제들을 고려하는 페이지 관리 정책(들)이 또한 제공될 수 있다.
일 비제한적 예로서, 페이지 관리 정책은 스트림 트랜잭션을 위한 현재 메모리 페이지가 계류중인 스트림 트랜잭션에 의해 액세스될 다음의 메모리 페이지인지의 여부에 기초할 수 있다. 만약 그렇다면, 적용되는 페이지 관리 정책은 현재 메모리 페이지를 폐쇄하고 재오픈할 시 프로세싱 시간을 회피하기 위해서 현재 스트림 트랜잭션을 위한 메모리 액세스 이후 현재 메모리 페이지를 오픈 상태로 유지하는 것일 수 있다. 만약 그렇지 않다면, 적용되는 페이지 관리 정책은 현재 스트림 트랜잭션을 위한 메모리 액세스 이후 현재 메모리 페이지를 폐쇄하는 것일 수 있다. 다른 비제한적 예로서, 페이지 관리 정책은 현재 스트림 트랜잭션을 위한 다음의 메모리 페이지가 스트림 트랜잭션(즉, 페이지 또는 행 크로싱)을 위해서 액세스된 현재 메모리 페이지가 아닌지의 여부에 기초할 수 있다. 만약 그렇지 않다면, 적용되는 페이지 관리 정책은 현재 스트림 트랜잭션을 위한 메모리 액세스 이후 현재 메모리 페이지를 폐쇄하는 것일 수 있다. 또 다른 비제한적 예에서, 페이지 관리 정책은 메모리 내의 동일한 메모리 뱅크로의 스트림 트랜잭션들을 위한 복수의 메모리 액세스 요청들이 존재하는지의 여부에 기초할 수 있다. 만약 그렇다면, 페이지 관리 정책은, 제한 없이, 모든 스트림 트랜잭션들이 데드라인이 있는지의 여부, 오직 하나의 스트림 트랜잭션이 데드라인이 있는지의 여부 및/또는 스트림 트랜잭션들이 그 데드라인들 이후에 있는지의 여부를 포함하는 스트림 트랜잭션 속성들에 따라, 현재 스트림 트랜잭션을 위한 메모리 페이지를 오픈 상태로 유지하거나 또는 폐쇄하는 것일 수 있다.
다른 실시예에서, 메모리에 액세스하기 위한 방법이 제공된다. 상기 방법은 메모리 제어기에서 스트림 트랜잭션을 위한 메모리 액세스 요청을 수신하는 단계를 포함한다. 상기 방법은 또한 상기 스트림 트랜잭션에 포함되는 메모리 내의 적어도 하나의 메모리 페이지로의 메모리 액세스를 수행하는 단계를 포함한다. 상기 방법은 또한 상기 스트림 트랜잭션과 관련된 정보에 기초하여 상기 적어도 하나의 메모리 페이지에 대한 페이지 관리 정책을 결정하는 단계를 포함한다. 상기 방법은 또한 상기 적어도 하나의 메모리 페이지에 페이지 관리 정책을 적용하는 단계를 포함한다.
다른 실시예에서, 메모리 제어기로 하여금, 스트림 트랜잭션을 위한 메모리 액세스 요청을 수신하게 하기 위한 컴퓨터 실행가능 명령들이 저장된 컴퓨터 판독가능 매체가 제공된다. 컴퓨터 판독가능 매체는 또한, 메모리 제어기로 하여금, 상기 스트림 트랜잭션에 포함되는 메모리 내의 적어도 하나의 메모리 페이지로의 메모리 액세스를 수행하게 하기 위한 컴퓨터 실행가능 명령들을 저장한다. 상기 컴퓨터 판독가능 매체는 또한, 메모리 제어기로 하여금, 상기 스트림 트랜잭션과 관련된 정보에 기초하여 상기 적어도 하나의 메모리 페이지에 페이지 관리 정책을 적용하게 하기 위한 컴퓨터 실행가능 명령들을 저장한다.
도 1은 복수의 마스터 디바이스들을 슬래이브 디바이스들에 접속시키는 버스 상호접속부를 포함하는 예시적인 시스템의 블록도이며, 이들 중 하나는, 스트림 트랜잭션들을 지원하고 스트림 트랜잭션들과 관련된 정보에 기초하여 메모리에 페이지 관리 정책(들)을 적용하도록 구성되는 메모리 제어기로 구성되는 메모리 시스템이다.
도 2는 슬래이브 디바이스로의 마스터 디바이스에 의한 스트림 트랜잭션을 위한 메모리 액세스 요청에 응답하여 슬래이브 디바이스로부터 마스터 디바이스로의 예시적인 스트림 트랜잭션 응답의 블록도이다.
도 3은 메모리 액세스 요청들을 프로세싱하고 스트림 트랜잭션들과 관련된 정보에 기초하여 메모리에 페이지 관리 정책(들)을 적용하기 위해서 도 1의 메모리 제어기에 의해 수행되는 예시적인 프로세스를 도시하는 흐름도이다.
도 4a 및 도 4b는 스트림 트랜잭션들과 관련된 정보에 기초하여 페이지 관리 정책을 적용하는 메모리 제어기의 예시적인 프로세스를 도시하는 흐름도들이다.
도 5는 버스 트랜잭션을 요청하는 마스터 디바이스에 의해 제공된 제어 블록으로부터 마스터 식별 워드(word), 메모리 페이지 정보 및 스트림 식별자 블록을 지원하도록 구성되는 메모리 제어기에 대한 예시적인 메모리 액세스 요청 큐의 도면이다.
도 6은 액세스되는 현재 메모리 페이지가 계류중인 스트림 트랜잭션에 의해 액세스될 다음의 메모리 페이지인지의 여부에 기초하여 메모리에 페이지 관리 정책을 적용하는 메모리 제어기의 예시적인 프로세스의 흐름도이다.
도 7은 현재 스트림 트랜잭션을 위해서 액세스될 다음의 메모리 페이지가 현재 스트림 트랜잭션에 의해 액세스되는 현재 메모리 페이지가 아닌지의 여부에 기초하여 메모리에 페이지 관리 정책을 적용하는 메모리 제어기의 예시적인 프로세스의 흐름도이다.
도 8은 메모리 내의 동일한 메모리 뱅크를 포함하는 둘 또는 셋 이상의 스트림 트랜잭션들이 활성인지의 여부에 기초하여 메모리에 페이지 관리 정책을 적용하는 메모리 제어기의 예시적인 프로세스의 흐름도이다.
도 9는 도 1의 메모리 시스템 및 버스 상호접속부를 포함할 수 있는 예시적인 프로세서-기반 시스템의 블록도이다.
이제, 도시된 도면들을 참조하면, 본 개시의 몇몇 예시적인 실시예들이 설명된다. "예시적인"이라는 용어는 "예, 예시 또는 예증으로서 기능하는" 것을 의미하도록 본 명세서에서 사용된다. "예시적인"으로서 본 명세서에서 설명되는 임의의 실시예는 반드시 다른 예시적인 실시예들보다 선호되거나 또는 유리한 것으로 해석되는 것은 아니다.
상세한 설명에서 개시되는 실시예들은 스트림 트랜잭션 정보에 기초하여 페이지 관리 정책(들)을 적용하기 위한 메모리 제어기들, 시스템들, 방법들, 및 컴퓨터 판독가능 매체를 포함한다. 이와 관련하여, 일 실시예에서, 메모리 제어기가 제공된다. 메모리 제어기는 스트림 트랜잭션들을 위한 메모리 액세스 요청들을 수신하도록 구성되는 제어기를 포함한다. 스트림 트랜잭션은 데이터의 효율적 벌크 전달들을 용이하게 하기 위한 버스트 액세스 타입들의 수퍼세트(superset)이다. 메모리 제어기는 또한 단일 버스트 및 단일 비트(beat) 액세스 타입들과 같은 비-스트림 트랜잭션들을 위한 메모리 액세스 요청들을 수신하도록 구성된다. 메모리 제어기는 스트림 트랜잭션들에 의해 특정되는 메모리 내의 메모리 페이지들로의 메모리 액세스들을 수행하도록 구성된다. 제어기는 스트림 트랜잭션들과 관련된 정보에 기초하여 메모리에 페이지 관리 정책(들)을 적용하도록 추가로 구성된다. 예들로서, 스트림 트랜잭션 정보는 계류중인 스트림 트랜잭션들의 진행 뿐만 아니라, 추후에 액세스될 것인 메모리에서의 주소 범위들에 대한 정보를 제공할 수 있다. 이러한 방식으로, 페이지 관리 정책(들)은 스트림 트랜잭션들을 이용할 때 효율성을 위해서 구성될 수 있다. 메모리 제어기가 상이한 디바이스들로부터의 다수의 메모리 액세스 요청들(스트림 트랜잭션들을 포함함)을 핸들링하고 있을 때 발생할 수 있는 레이턴시 문제들을 고려하는 페이지 관리 정책(들)이 또한 제공될 수 있다.
도 1 및 도 2는 스트림 트랜잭션들을 위한 메모리 액세스 요청들을 포함하는 메모리 액세스 요청들을 수행하기 위한 메모리 제어기를 포함하는 예시적인 시스템을 도시한다. 이와 관련하여, 도 1은 스트림 트랜잭션 정보에 기초하여 메모리에 페이지 관리 정책(들)을 적용하기 위한 메모리 제어기를 포함하는 예시적인 시스템(10)을 도시한다. 시스템(10)은 버스 상호접속부(16)를 통해 슬래이브 디바이스들(14)에 상호접속되는 복수의 마스터 디바이스들(12)을 포함한다. 버스 상호접속부(16)는 버스 상호접속부(16)에 접속되는 마스터 디바이스들(12) 중 하나 또는 둘 이상이 슬래이브 디바이스들(14) 중 임의의 슬래이브 디바이스와 통신하게 하도록 구성되며, 슬래이브 디바이스들(14)은 또한 버스 상호접속부(16)에 각각 접속된다. 슬래이브 디바이스들(14)은 마스터 디바이스들(12)로의 자원들을 공유받으므로, 마스터 디바이스들(12)로부터 슬래이브 디바이스들(14)로의 다수의 통신 요청들을 중재하기 위해서 중재기(20)가 이러한 실시예에서의 버스 상호접속부(16)에서 제공된다. 예로서, 버스 상호접속부(16)는 원한다면, 반도체 다이(22)에서 제공될 수 있으며, 시스템-온-칩(SOC) 집적 회로 설계에서 제공될 수 있다.
마스터 디바이스들(12) 및 슬래이브 디바이스들(14)은 원하는 임의의 타입의 전자 디바이스 또는 서브시스템일 수 있으며, 따라서, 제한 없이, 중앙 처리 유닛(CPU)(12(1)), 디지털 신호 프로세서(DSP)(12(2)), 필드 프로그램가능 게이트 어레이(FPGA)(12(3)), 직접 메모리 액세스(DMA) 제어기(12(4)), 및 도 1에 도시된 바와 같이 디스플레이(18)에 제공된 정보를 제어하는 디스플레이 프로세서(12(5))를 포함할 수 있다. 슬래이브 디바이스(14)의 예는 도 1에 도시된 메모리 시스템(24)이다. 메모리 시스템(24)은 마스터 디바이스들(12) 중 임의의 마스터 디바이스가 판독 및 기록 메모리 액세스 요청들을 메모리 시스템(24) 내의 메모리(26)에 제공하게 하고 그리고 판독 및 기록 응답들을 수신하게 하기 위해서 버스 상호접속부(16)에 접속된다. 이와 관련하여, 메모리 시스템(24)은, 버스 상호접속부(16)를 메모리(26)에 인터페이싱하고 마스터 디바이스들(12)에 의해 버스 상호접속부(16)를 통해 메모리 시스템(24)에 제공된 메모리 액세스 요청들에 응답하여 메모리(26)로의 데이터 플로우 및 메모리(26)로부터의 데이터 플로우를 제어하는 메모리 제어기(28)를 포함한다.
아래에서 보다 상세하게 논의될 바와 같이, 제어 블록(CTRL_BLOCK)의 형태로 제공된 메모리 액세스 정보는 메모리(26)에 메모리 액세스 트랜잭션을 요청하기 위해서 메모리 제어기(28)에 제공된다. 메모리 제어기(28)는 마스터 디바이스들(12)로부터의 메모리 액세스 요청들을 버퍼링하기 위한 메모리 액세스 요청 큐(29)를 포함한다. 제어기(31)는 또한, 메모리 액세스 요청들을 수신하여 수행하는 것 및 페이지 관리 정책들을 결정하여 메모리(26)에 적용하는 것을 포함하는, 메모리 제어기(28)에 의한 동작들을 제어하기 위해서 메모리 제어기(28)에서 제공될 수 있다. 제어기(31)는 소프트웨어 명령들의 실시 없이 회로들을 포함할 수 있다. 메모리 제어기(28)는 또한, 제어기(31) 내의 컴퓨터 판독가능 매체(33)에서 제공되거나 또는 그렇지 않으면 메모리 제어기(28)에 액세스가능한 소프트웨어 명령들을 실행하는 프로세서(들)를 포함할 수 있다. 예들로서, 컴퓨터 판독가능 매체(33)는 레지스터들 및/또는 다른 메모리로 구성될 수 있다.
메모리 버스(32)는 메모리(26)를 칩 선택들 CS(0)-CS(N)을 포함하는 메모리 제어기(28)에 인터페이싱하기 위해서 제공되며, 각각의 메모리 유닛 30(0)-30(N)에 대하여 하나가 제공된다. 각각의 메모리 유닛 30(0)-30(N)은 개별 메모리 칩일 수 있다. 칩 선택들 CS(0)-CS(N)는 액세스될 원하는 메모리 위치를 포함하는 메모리 유닛들 30(0)-30(N)을 가능하게 하기 위해서 메모리 제어기(28)에 의해 선택적으로 인에이블된다. 메모리 제어기(28)는 메모리 유닛들 30(0)-30(N) 중 하나가 데이터 충돌들을 회피하기 위해서 데이터 버스(DATA) 상에서 데이터를 동시에 어서트하도록 이러한 예에서 메모리 유닛들 30(0)-30(N) 중 하나를 동시에 인에이블한다. 메모리 버스(32)는 또한, 메모리 제어기(28)가 메모리(26)에의 기록 또는 메모리(26)로부터의 판독을 위한, 메모리 유닛들 30(0)-30(N)에서 액세스된 메모리 주소를 제어하게 하는 주소/제어 버스(ADDR/CTRL)를 포함한다. 메모리 버스(32)는 또한, 메모리 액세스들을 위해서 메모리 제어기(32)와 메모리 유닛들 30(0)-30(N) 사이의 타이밍을 동기화하기 위한 클럭 신호(CLK)를 포함한다.
도 1을 계속 참조하면, 각각의 메모리 유닛 30(0)-30(N)은 일반적으로 엘리먼트(34)로 지칭되는 복수의 메모리 뱅크들을 포함한다. 도 1은 메모리 유닛들 30(0) 중 하나에 대한 메모리 뱅크들(34)을 도시한다. 메모리 뱅크는 메모리의 논리 유닛이다. 도 1의 도시된 예에서, 메모리 뱅크들(34)은 데이터 버스 상에서 동시에 열 여섯(16) 비트의 정보를 제공한다. 도시된 예에서, 각각의 메모리 유닛 30(0)-30(N)은 4개의 메모리 뱅크들을 포함한다. 단지 4개의 메모리 뱅크들(B0, B1, B2, B3)만이 도 1에 도시되지만, 원하는 임의의 개수의 메모리 뱅크들이 각각의 메모리 유닛 30(0)-30(N)에서 제공될 수 있다. 각각의 메모리 뱅크(B0-B3)는 "행들" 및 "열들"을 가지는 격자 패턴으로 조직화된다. 각각의 행은 메모리 페이지(36)로 알려져 있다. 메모리(26) 내의 메모리 위치에 액세스하기 위해서, 메모리 제어기(28)는 칩 선택 CS(0)-CS(N)을 어서트하며, ADDR/CTRL 버스 상에 주소에 의해 표시되는 바와 같이 특정 메모리 페이지(36)를 활성화하는 메모리 페이지 오픈 커맨드를 발행한다. 전형적으로, 이러한 커맨드는 몇몇 클럭 사이클들을 취한다. 원하는 메모리 페이지(36)가 오픈된 이후, 원하는 메모리 위치에서 데이터에 액세스하기 위해서 열 주소(28)가 "판독" 또는 "기록" 커맨드와 함께 메모리 제어기(28)에 의해 발행된다. 메모리 뱅크들(34) 내의 다른 메모리 페이지(36)로의 액세스가 요청될 때, 메모리 제어기(28)는 현재 활성화된 메모리 페이지(36)를 활성화해제하거나 또는 폐쇄하여야 하는데, 이는 전형적으로 몇몇 클럭 사이클들을 취한다.
동일한 메모리 페이지(36)로의 순차적 또는 일련의 메모리 액세스들이 메모리 뱅크들(34) 중 주어진 하나에서 이루어지는 경우, 메모리 페이지(36)가 그 액세스 이후 오픈 상태로 유지되면 클럭 사이클들이 절약될 수 있다. 이러한 방식으로, 동일한 메모리 페이지(36)로의 후속하는 메모리 액세스들은 메모리 페이지(36)를 재오픈하는 것을 요구하지 않을 것이다. 총 클럭 사이클 절약들의 양은 동일한 메모리 페이지(36)로의 순차적 또는 일련의 메모리 액세스들의 수에 의존한다. 그러나, 상이한 메모리 페이지들(36)로의 메모리 액세스들이 종종 이루어지는 경우, 액세스 이후 메모리 페이지(36)를 오픈 상태로 유지하거나 또는 남겨 두는 것은 클럭 사이클 페널티들을 초래할 수 있다. 클럭 사이클 페널티의 양은 상이한 메모리 페이지들(36)로의 후속하는 메모리 액세스들의 수에 의존할 수 있다. 클럭 사이클 페널티의 양은 또한, 메모리 제어기(28)가 메모리 액세스 요청에 응답하여 얼마 동안 대기하여야 하는지를 관리하는 메모리(26)의 특정 타이밍 파라미터들에 의존할 수 있다.
이러한 실시예에서, 메모리 유닛들 30(0)-30(N)은 동적 메모리들이다. 각각의 메모리 유닛 30(0)-30(N)은 DDR0 및 DDRN로 라벨링되는 열 여섯(16) 비트 더블 데이터 레이트(DDR) 동적 랜덤 액세스 메모리(DRAM) 칩이다. 이와 관련하여, 메모리 유닛들 30(0)-30(N)로의 액세스들을 제어하는 메모리 제어기(28)는 DDR 메모리 제어기일 수 있다. 메모리 유닛들 30(0)-30(N)은 임의의 타입의 동적 메모리일 수 있다. 예들은 동기식 DRAM(SDRAM), 더블 데이터 레이트(DDR) SDRAM, DDR2 DRAM, DDR3 DRAM, 모바일 DDR(MDDR) DRAM, 저전력 DDR(LPDDR) DRAM 및 LPDDR2 DRAM을 포함한다. 메모리 유닛들 30(0)-30(N)은 동적 메모리 외의 다른 타입들의 메모리일 수 있다. 메모리 제어기(28)는 메모리 유닛들 30(0)-30(N)과 호환가능한 임의의 타입의 메모리 제어기일 수 있다. 또한, 메모리 제어기(28) 또는 메모리 시스템(24)은 마더보드 또는 다른 인쇄 회로 보드(PCB) 상에 개별 디바이스로서 제공될 수 있거나, 또는 버스 상호접속부(16)를 포함하는 동일한 반도체 다이(22)로 통합될 수 있는데, 이는 레이턴시를 감소시킬 수 있다. 또한, 마스터 디바이스들(12) 역시 버스 상호접속부(16)를 포함하는 동일한 반도체 다이(22)로 통합될 수 있다.
도 1의 마스터 디바이스들(12)은, 버스 상호접속부(16)에 접속된 메모리 시스템(24)에 의해 서비스될 버스 상호접속부(16)에 단일 비트(beat) 또는 버스트 트랜잭션들을 제공할 수 있다. 도 1의 마스터 디바이스들(12)은 또한, 메모리 시스템(24)에 의해 서비스될 버스 상호접속부(16)에 스트림 트랜잭션들을 제공할 수 있다. 스트림 트랜잭션들은 많은 양들의 데이터를 효율적으로 이동시키는데 사용될 수 있다. 스트림 트랜잭션은, 단일 트랜잭션 요청의 일부로서 전달될 더 많은 양들의 데이터를 제공하기 위해서 버스트들의 수퍼세트로 이루어질 수 있다. 스트림 트랜잭션의 예가 도 2에 도시된다. 도 2의 이러한 예에서, 이백 오십 육(256)개의 데이터 버스트들이 존재하는데, 여기서 각각의 버스트는 네(4)개의 데이터 비트들로 구성된다. 슬래이브 디바이스들(14)은, 마스터 디바이스들(12)에 의해 슬래이브 디바이스들(14)에 이전에 요청된 스트림 트랜잭션들에 응답하는 버스 상호접속부(16) 상의 버스트 데이터 트랜잭션들(42)의 수퍼세트로 구성된다. 예를 들어, 이러한 예에서의 마스터 디바이스(12)는, 메모리(26)로부터의 많은 양들의 데이터를 수신하여 DMA 제어기에 커플링된 다른 디바이스들에 전달하도록 구성되는 DMA 제어기일 수 있다.
스트림 트랜잭션들이 버스 상호접속부(16) 상에서 추후 메모리 액세스에 대한 유한 정보 및 관련된 데이터 전달 트래픽을 제공하므로, 클럭 사이클 효율성들에 관하여, 메모리 제어기(28)에 의해 적용되는 페이지 관리 정책을 결정하기 위해서 스트림 트랜잭션들에 관한 정보를 사용하는 것이 유리할 수 있다. 예를 들어, 스트림 트랜잭션을 위해서 현재 액세스된 메모리 페이지가 다른 계류중인 스트림 트랜잭션에 의해 액세스될 다음의 메모리 페이지인 경우, 메모리 액세스 이후 현재 메모리 페이지를 오픈 상태로 유지하기 위한 페이지 관리 정책을 적용하는 것이 보다 효율적일 수 있다. 다른 예로서, 스트림 트랜잭션의 프로세싱 동안 페이지(또는 행) 크로싱이 그 다음에 발생할 것인 경우, 현재 메모리 페이지에서의 마지막 액세스 이후 현재 메모리 페이지를 폐쇄하기 위한 페이지 관리 정책을 적용하는 것이 보다 효율적일 수 있다. 동일한 메모리 뱅크로의 액세스들에 의해 복수의 스트림 트랜잭션들이 활성인 경우, 제한 없이, 모든 스트림 트랜잭션들이 데드라인이 있는지의 여부, 오직 하나의 스트림 트랜잭션이 데드라인이 있는지의 여부 및/또는 스트림 트랜잭션들이 그 데드라인들 이후에 있는지의 여부를 포함하는 스트림 트랜잭션 속성들에 따라, 현재 스트림 트랜잭션을 위한 메모리 페이지를 오픈 상태로 유지하거나 또는 폐쇄하기 위한 페이지 관리 정책을 적용하는 것이 보다 효율적일 수 있다.
이와 관련하여, 도 3은 스트림 트랜잭션들을 포함할 수 있는 메모리 액세스 요청들을 프로세싱하기 위해서 도 1의 메모리 제어기(28)에 의해 수행되는 전반적 예시적인 프로세스를 도시하는 흐름도이다. 스트림 트랜잭션들을 위해서, 메모리 제어기(28)는 스트림 트랜잭션들과 관련된 정보에 기초하여 페이지 관리 정책(들)을 결정하여 메모리에 적용하도록 구성된다. 도 3을 참조하면, 메모리 제어기(28)는 메모리 액세스 요청 큐(29)로부터 다음의 미완료된 메모리 액세스 요청을 풀링(pull)한다(블록 50). 메모리 제어기(28)는 풀링된 메모리 액세스 요청이 스트림 트랜잭션을 위한 것인지의 여부를 결정한다(블록 52). 만약 그렇지 않다면, 메모리 제어기(28)는 메모리(26)로의 메모리 액세스를 수행하며, 스트림 트랜잭션 정보에 기초하지 않는 디폴트 페이지 관리 정책을 적용할 수 있다(블록 54). 그러나, 메모리 액세스 요청이 스트림 트랜잭션을 위한 것인 경우(블록 52), 메모리 제어기(28)는 스트림 트랜잭션이 새로운 것인지 또는 현재 진행 중인지를 결정할 수 있다(블록 56). 아직 진행 중이지 않은 경우, 메모리 제어기(28)는 스트림 트랜잭션을 셋업 및 시작한다(블록 58). 이후, 메모리 제어기(28)는 메모리 액세스 요청의 주소를 포함하는 메모리(26) 내의 메모리 페이지(36)에 액세스함으로써 스트림 트랜잭션에서 다음의 메모리 액세스를 수행한다(블록 60). 이후, 메모리 제어기(28)는 스트림 트랜잭션에 관한 정보에 기초하여 액세스된 메모리 페이지(36)에 페이지 관리 정책을 적용한다(블록 60).
프로세싱되는 스트림 트랜잭션이 완료된 경우(블록 62), 메모리 제어기(28)는 메모리 액세스 요청 큐(29)로부터 다음의 미완료된 메모리 액세스 요청을 풀링하고(블록 50), 프로세스는 반복된다. 스트림 트랜잭션이 완료되지 않은 경우(블록 62), 메모리 제어기(28)는 메모리(26)로의 액세스의 제어가 메모리 액세스 요청 큐(29)에서의 다른 메모리 액세스로 제공되어야 하는지의 여부를 결정한다(블록 63). 예를 들어, 메모리 제어기(28)는 현재 메모리 액세스 요청이 완료되기 전에 메모리 액세스 요청 큐(29)에서의 다음의 메모리 액세스 요청으로 스위칭하도록 구성될 수 있다. 완료가 수행될 수 있기 전에 스트림 트랜잭션들을 위한 메모리 액세스 요청들을 스위치 아웃하는 것은 다른 메모리 액세스 요청들이 메모리 제어기(28)에 의해 결핍되지 않도록 수행될 수 있다. 또한, 다른 예로서, 메모리 액세스 요청 큐(29)에서의 다른 스트림 트랜잭션들이 더 집중적인(intensive) 데드라인 및/또는 프로세싱되는 현재 스트림 트랜잭션보다 더 높은 우선순위를 가지는 경우, 스트림 트랜잭션이 스위칭될 수 있다.
현재 스트림 트랜잭션을 위한 제어가 포기될 것인 경우, 메모리 제어기(28)는 스트림 트랜잭션이 추후 시간에 계속될 수 있도록 현재 스트림 트랜잭션에 대한 진행 정보를 메모리 요청 액세스 큐(29)에 저장한다(블록 64). 이후, 메모리 제어기(28)는 메모리 액세스 요청 큐(29)로부터 다음의 미완료된 메모리 액세스 요청을 풀링하고(블록 50), 프로세스는 반복된다. 프로세싱되는 현재 스트림 트랜잭션에 대한 제어가 포기되지 않을 것인 경우(블록 63), 메모리 제어기(28)는 메모리 액세스 요청의 주소를 포함하는 메모리(26) 내의 메모리 페이지(36)에 액세스함으로써 스트림 트랜잭션에서 다음의 메모리 액세스를 수행한다(블록 60). 이후, 메모리 제어기(28)는 스트림 트랜잭션에 관한 정보에 기초하여 액세스된 메모리 페이지(36)에 페이지 관리 정책을 적용한다(블록 60).
도 4a 및 도 4b는 스트림 트랜잭션들과 관련된 정보에 기초하여 페이지 관리 정책을 적용하는 메모리 제어기의 예시적인 프로세스를 도시하는 흐름도들이다. 예로서, 도 4a 및 도 4b에 도시된 프로세스는 도 1의 메모리 제어기(28)에 의해 도 3의 블록 60의 일부로서 수행될 수 있다. 이와 관련하여, 도 4a 및 도 4b는 도 1의 시스템(10) 및 메모리 제어기(28)에 대하여 논의될 것이다. 그러나, 도 4a 및 도 4B의 프로세스는 페이지 관리 정책들이 제공 및 적용되는 원하는 임의의 시스템에서 사용될 수 있다.
도 4a를 참조하면, 메모리 제어기(28)는 현재 메모리 액세스 요청을 위해서 액세스될 메모리 뱅크(34) 및 메모리 페이지(36)를 결정한다(도 4a의 블록 70). 위에서 앞서 논의된 바와 같이, 메모리 제어기(28)에 의해 프로세싱된 메모리 액세스 요청들은 메모리 액세스 요청 큐(29)에 저장될 수 있다. 이후, 메모리 제어기(28)는 예를 들어, 액세스될 메모리 페이지(36)가 이미 오픈되었는지의 여부를 결정하기 위해서(도 4a의 블록 72) 내부 레지스터, 이를테면, 도 5의 내부 레지스터(66)와 상의한다. 도 5의 예에서, 메모리(26) 내의 각각의 메모리 뱅크(34)에 대한 내부 레지스터들(66)이 제공된다. 내부 레지스터들(66)은 주어진 메모리 뱅크(34)에 대하여 마지막 액세스된 메모리 페이지(MEMORY_PAGE)(36) 및 페이지 오픈 레지스터(PAGE_OPEN)(69)에 의해 표시되는 바와 같은 메모리 페이지(36)가 현재 오픈되어 있는지의 여부를 저장하기 위한 메모리 뱅크 레지스터(68)를 포함한다. 액세스될 메모리 페이지(36)가 아직 오픈되지 않은 경우(도 4a의 블록 72), 메모리 제어기(28)는 메모리 액세스 요청에 대응하는 메모리 페이지(36)를 오픈한다(도 4b의 블록 74). 이후, 메모리 제어기(28)는 메모리 액세스 요청에서의 메모리 위치에 액세스한다(도 4b의 블록 76). 도 4a의 블록 72에서, 액세스될 메모리 페이지(36)가 도 5의 페이지 오픈 레지스터(69)에 의해 결정되는 바와 같이 이미 오픈되어 있는 경우, 메모리 제어기(28)는 메모리 주소에 포함된 메모리 페이지(36)를 오픈할 필요 없이 메모리 액세스 요청에서 요청된 메모리 위치에 직접 액세스할 수 있다(도 4a의 블록 78).
메모리 액세스에서의 메모리 위치가 요청된 이후(도 4a의 블록 78 이후 또는 도 4b의 블록 76 이후), 메모리 제어기(28)는 그 다음, 메모리 액세스 요청을 위한 오픈된 메모리 페이지(36)에 적용될 페이지 관리 정책을 결정한다. 결정된 페이지 관리 정책에 따라, 메모리 제어기(28)는 메모리 액세스 이후 현재 메모리 페이지(36)를 오픈 상태로 유지하거나 또는 현재 메모리 페이지(36)를 폐쇄할 수 있다. 이러한 실시예에서의 메모리 제어기(28)는 스트림 트랜잭션과 관련된 정보에 기초하여 페이지 관리 정책을 결정할 수 있다. 이와 관련하여, 메모리 제어기(28)는 현재 메모리 액세스 요청을 포함하는 메모리 액세스 요청 큐(29)에 임의의 활성 스트림 트랜잭션들이 존재하는지의 여부를 결정한다(도 4a의 블록 80). 만약 그렇지 않다면, 메모리 제어기(28)는 스트림 트랜잭션들과 관계없이 디폴트 페이지 관리 정책을 결정하고(도 4a의 블록 82), 현재 메모리 액세스 요청에서의 메모리 페이지(36)를 폐쇄하거나(도 4a의 블록 84) 또는 프로세스가 종료되기 전에 현재 메모리 액세스 요청에서의 메모리 페이지(36)를 오픈 상태로 유지한다(도 4a의 블록 86).
활성 스트림 트랜잭션이 존재하는 경우(도 4a의 블록 80), 메모리 제어기(28)는 스트림 트랜잭션 정보에 기초하여 메모리 액세스 이후 현재 오픈된 메모리 페이지(36)에 대한 페이지 관리 정책을 결정한다(도 4a의 블록 88). 도 6-13에 대하여 아래에서 보다 상세하게 논의될 바와 같이, 스트림 트랜잭션 정보에 기초하는 페이지 관리 정책이 다양한 비제한적 방식들로 메모리 제어기에 의해 제공될 수 있다. 페이지 관리 정책이 현재 메모리 액세스 요청에서의 메모리 페이지(36)를 폐쇄하는 것을 허용하는 경우(도 4a의 블록 88), 메모리 제어기(28)는 프로세스가 종료되기 전에 현재 오픈된 메모리 페이지(36)를 폐쇄하고(도 4a의 블록 86), 그렇지 않으면, 현재 오픈된 메모리 페이지(36)는 프로세스가 종료되기 전에 오픈 상태로 유지된다(도 4a의 블록 86).
스트림 트랜잭션 요청들을 지원하기 위한 메모리 제어기의 경우, 스트림 트랜잭션에 관한 정보가 메모리 제어기에 제공된다. 스트림 트랜잭션 정보는 스트림 트랜잭션을 어떻게 수행할 것인지를 메모리 제어기에 본질적으로 명령하는 정보를 제공한다. 예를 들어, 도 1에 대하여, 메모리 제어기(28)는 마스터 디바이스들(12)로부터 버스 상호접속부(16)를 통해 스트림 트랜잭션들과 관련된 정보를 수신한다. 본 명세서에 논의되는 바와 같이, 메모리 제어기(28)는 또한 메모리 액세스들 이후 메모리에 적용될 페이지 관리 정책을 결정하기 위해서 이러한 스트림 트랜잭션 정보를 사용한다. 이와 관련하여, 도 5는 스트림 트랜잭션들을 지원하도록 구성되는 도 1의 메모리 제어기(28)에서 메모리 액세스 요청 큐(29)로서 사용될 수 있는 예시적인 메모리 액세스 요청 큐(29A)의 도면이다. 메모리 액세스 요청 큐(29A)는 메모리 제어기(28)의 내부의 또는 외부의 그리고 메모리 제어기(28)에 의해 액세스가능한 다른 메모리 또는 내부 레지스터들에서 제공될 수 있다. 메모리 액세스 요청 큐(29A)는 메모리 액세스 요청들의 수를 영(0) 내지 N으로 홀딩하도록 구성되는 표로 구성된다.
도 5는 버스 트랜잭션을 요청하는 마스터 디바이스(14(0-M))를 식별하기 위해서 메모리 액세스 요청 큐(29A)에서 제공된 예시적인 마스터 식별자(92)의 도면을 포함한다. 이러한 예에서, 마스터 식별자(92)는 10 비트 워드이다. 상위 2개의 비트들(F1, F0)은, 특정 메모리 액세스 요청에 포함되는 네(4)개의 별개의 패브릭(fabric)들의 식별을 허용하는 패브릭 식별자(100)를 포함한다. 중간 4개의 비트들(M3, M2, M1, M0)은 마스터 디바이스(12)를 식별하는 마스터 디바이스 식별자(102)이다. 따라서, 이러한 예에서, 열 여섯(16)개의 고유한 마스터 디바이스들(12)이 가능하다. 2개의 비트들(S1, S0)은, 제공되거나 또는 적용가능한 마스터 디바이스(12)에 커플링된 서브-마스터 디바이스를 식별하는 서브-마스터 디바이스 식별자(104)를 포함한다. 따라서, 이러한 예에서, 네(4)개의 고유한 서브-마스터 디바이스들이 가능하다. 하위의 2개의 비트들(A1, A0)은, 마스터 디바이스(12) 및/또는 서브-마스터 디바이스가 원하는 임의의 속성 정보를 제공하게 하는데 사용될 수 있는 속성 식별자(106)를 포함한다. 예를 들어, 소프트웨어 프로세스 또는 스레드의 식별은, 마스터 디바이스(12) 및/또는 서브-마스터 디바이스가 메모리 액세스 요청을 담당하는 소프트웨어 프로세스 또는 스레드를 식별하게 하기 위해서 속성 식별자(106)에서 제공될 수 있다. 원하는 임의의 다른 정보가 속성 식별자(106)에 포함될 수 있다.
도 5는 또한, 스트림 트랜잭션들을 수행하기 위한 메모리 제어기(28)에 스트림 트랜잭션 정보를 제공하게 하는 도 1의 버스 상호접속부(16)에 의해 지원되는 버스 프로토콜에 대한 예시적인 제어 블록(CTRL_BLOCK)(90)의 도면을 제공한다. 제어 블록(90)은 중재기(20) 및 메모리 제어기(28)가 마스터 디바이스들(12)로부터의 트랜잭션 요청들을 수행하게 하는 제어 정보를 포함한다. 예를 들어, 제어 블록(90)은 중재기(20)로의 메모리 액세스 요청의 요청자와 관련된 식별자를 포함하는 마스터 식별자(M_ID)(92)를 포함한다. 중재기(20)는 어떤 마스터 디바이스(12)가 메모리 제어기(28)를 포함하는 슬래이브 디바이스(14)로부터 수신된 응답들을 수신할 것인지를 결정하기 위해서 마스터 식별자(92)를 사용한다. 메모리 액세스 요청에 대하여 처리될 주소가 액세스(ADDRESS) 필드(94)에서 제공된다. 메모리 액세스 요청이 판독 트랜잭션인지 또는 기록 트랜잭션인지를 결정하는 것은 판독/기록(R/W) 필드(96)에서 제공된다. 스트림 식별자 블록(STREAM_ID_BLOCK)(98)은 버스 트랜잭션을 위한 스트림 트랜잭션 정보를 제공하도록 제공되며, 이는 이러한 예에서 메모리 액세스 요청이다.
5는 또한, 도 5의 제어 블록(90)에서 스트림 식별자 블록(98)으로서 사용될 수 있는 예시적인 스트림 식별자 블록의 도면을 포함하며, 메모리 액세스 요청 큐(29A)에서 제공된다. 스트림 식별자 블록(98)은 도 1의 메모리 제어기(28)를 포함하는 메모리 제어기가 스트림 식별자 블록(98)에 대하여 연관된 스트림 트랜잭션을 수행하게 하기 위해서 정보를 제공하는 스트림 트랜잭션과 관련된 예시적인 정보를 포함한다. 스트림 식별자 블록(98)은 또한, 메모리 액세스들 이후 메모리에 적용될 페이지 관리 정책을 결정하기 위해서 도 1의 메모리 제어기(28)를 포함하는 메모리 제어기에 의해 사용될 수 있는 스트림 트랜잭션과 관련된 예시적인 정보를 포함한다. 마스터 디바이스(12)는 상호접속 버스(16) 상에서 스트림 트랜잭션을 요청할 때 스트림 식별자 블록(98)에서 정보를 제공한다.
도 5에 도시된 바와 같이, 스트림 식별자 블록(98)은 스트림 트랜잭션을 식별하는 스트림 식별자 필드(STREAM_ID)(108)를 포함한다. 전달들의 수 필드(NO_TRANSFERS)(110)는 스트림 트랜잭션과 연관된 버스트 전달들의 수를 제공한다. 비트들의 수 필드(NO_BEATS)(112)는 각각의 버스트 전달에 대하여 수행될 데이터 전달의 비트들의 수를 제공한다. 바이트들의 수 필드(114)(NO_BYTES)는 각각의 비트 전달 동안 전달될 데이터의 바이트들의 수를 제공한다. 바이트들의 수 필드(114)는 버스 상호접속부(16) 및 슬래이브 디바이스들(14)의 아키텍처에 따라 구성가능하거나 또는 고정된 값일 수 있다. 스트림 트랜잭션과 연관된 데드라인이 존재하는 경우, 데드라인 정보는 데드라인 필드(DEADLINE)(116)에 저장될 수 있다. 예를 들어, 마스터 디바이스(12)는 특정 스트림 트랜잭션이, 클럭 사이클들, 비트들, 또는 다른 상대적 또는 절대적 타이밍에 관하여 존재할 수 있는 특정 타이밍 내에서 완료된다는 것을 요청할 수 있다. 우선순위 필드(PRIORITY)(118)는 또한, 우선순위가 스트림 트랜잭션과 연관되게 하도록 제공된다. 우선순위 필드(118)는 설계에 따라 마스터 디바이스(12), 중재기(20), 또는 슬래이브 디바이스(14)에 의해 공급 및/또는 변경되도록 구성될 수 있다. 이러한 스트림 정보 중 임의의 정보는, 페이지 관리 정책을 결정하기 위해서 메모리 제어기(28)에 의해 사용될 수 있다.
도 1의 메모리 제어기(28)는 중재기(20)로부터 이러한 예에서의 도 5의 제어 블록(90)을 포함하는 메모리 액세스 요청들을 수신하며, 메모리 액세스 요청 큐(29A)에 메모리 액세스 요청들을 저장한다. 큐 번호 필드(QUEUE_NO)(120)는 메모리 액세스 요청 큐(29A)에 저장된 메모리 액세스 요청들을 인덱싱하기 위해서 사용된다. 이러한 예에서의 메모리 액세스 요청 큐(29A) 내의 각각의 메모리 액세스 요청 엔트리는 메모리 액세스 요청들을 발신한 마스터 디바이스(12)를 식별하기 위한 마스터 식별자 필드(92)를 포함한다. 메모리 액세스 요청 엔트리들은 또한, 수신된 제어 블록(90)에서의 주소 필드(94) 내의 주소에 기초하여 메모리 제어기(28)에 의해 결정되는 칩 선택 필드(CS)(122), 메모리 뱅크 필드(MEMORY_BANK)(124) 및 메모리 페이지 필드(MEMORY_PAGE)(126)를 포함한다. 스트림 식별자 블록(98)은 또한, 메모리 액세스 요청이 스트림 트랜잭션인 경우 스트림 트랜잭션 정보를 저장하기 위해서 각각의 메모리 액세스 요청 엔트리에 대하여 제공된다. 나머지 전달들의 수 필드(NO_ACCESSES_REMAIN)(128)는 또한, 스트림 트랜잭션이 메모리 제어기(28)에 의해 수행될 때 메모리 제어기(28)가 스트림 트랜잭션에 대한 메모리 액세스 요청들의 진행을 저장하게 하기 위해서 제공된다.
스트림 트랜잭션과 관련된 정보에 기초하여 페이지 관리 정책을 결정하기 위해서 상이한 기준 또는 기준들이 도 1의 메모리 제어기(28)를 포함하는 메모리 제어기에 의해 사용될 수 있다. 본 개시는 임의의 특정 기준들 또는 기준에 제한되지 않는다. 도 6은 액세스되는 현재 메모리 페이지가 계류중인 스트림 트랜잭션에 의해 액세스될 다음의 메모리 페이지인지의 여부에 기초하여 페이지 관리 정책을 적용하는 일 예시적인 기준 및 프로세스(88A)의 흐름도이다. 프로세스는 도 4a의 블록 88의 일부로서 수행될 수 있다. 도 6에 도시된 바와 같이, 메모리 제어기(28)에 의한 메모리 액세스 이후, 메모리 제어기(28)는 액세스된 현재 메모리 페이지(36)가 메모리 요청 액세스 큐(29A)에서 계류중인 스트림 트랜잭션에 의해 액세스될 다음의 메모리 페이지인지의 여부를 결정한다(블록 130). 계류중인 스트림 트랜잭션은 프로세싱되는 현재 스트림 트랜잭션 또는 메모리 요청 액세스 큐(29A)에서의 다른 스트림 트랜잭션의 후속하는 부분일 수 있다. 만약 그렇지 않다면, 메모리 제어기(28)는 메모리 액세스 이후 디폴트 페이지 관리 정책을 적용할 수 있으며(블록 132), 이는 액세스 이후 현재 메모리 페이지(36)를 폐쇄하는 것 또는 액세스 이후 현재 메모리 페이지(36)를 오픈 상태로 유지하는 것일 수 있다.
도 6을 계속 참조하면, 메모리 제어기(28)가 액세스된 현재 메모리 페이지(36)가 메모리 요청 액세스 큐(29A)에서 계류중인 스트림 트랜잭션에 의해 액세스될 다음의 메모리 페이지임을 결정하는 경우(블록 130), 현재 메모리 페이지(36)를 오픈 상태로 유지하는 것이 바람직할 수 있다. 이러한 시나리오에서, 적어도 하나의 스트림 트랜잭션이 오픈된 현재 메모리 페이지(36)로의 메모리 액세스를 요청할 것이라는 것이 알려진다. 이러한 경우, 메모리 제어기(28)는 현재 메모리 페이지(36)를 오픈 상태로 유지할 수 있다(블록 134). 대안적으로, 메모리 액세스 요청 큐(29A)에서의 스트림 식별자 블록(98) 내의 데드라인 필드(116)(도 5)에서 제공된 바와 같이, 메모리 제어기(28)는 단지 계류중인 스트림 트랜잭션이 그 데드라인 이후에 있는 경우, 현재 메모리 페이지(36)를 오픈 상태로 유지할 수 있고(블록 136), 그렇지 않으면, 메모리 제어기(28)는 현재 메모리 페이지(36)를 폐쇄할 수 있다. 이후, 현재 메모리 액세스 요청은 종료된다(블록 138).
도 7은 페이지 관리 정책을 적용하는 메모리 제어기의 다른 예시적인 기준 및 프로세스(88B)의 흐름도이다. 이러한 예에서, 메모리 제어기는 현재 스트림 트랜잭션에 의해 액세스될 다음의 메모리 페이지가 현재 스트림 트랜잭션에 의해 액세스되는 현재 메모리 페이지가 아닌지의 여부에 기초하여 페이지 관리 정책을 적용한다. 이것은 "페이지 크로싱" 또는 "행 크로싱"이 현재 메모리 페이지(36)에서 발생할 것임을 의미하고, 따라서 다음의 메모리 페이지 액세스 전의 액세스 이후 현재 메모리 페이지(36)를 폐쇄하는 것이 유리할 수 있다. 이러한 프로세스는 도 4a의 블록 88의 일부로서 수행될 수 있다. 도 7에 도시된 바와 같이, 메모리 제어기(28)에 의한 메모리 액세스 이후, 메모리 제어기(28)는 프로세싱되는 현재 스트림 트랜잭션에 의해 액세스될 다음의 메모리 페이지가 현재 메모리 페이지(36)가 아닌지의 여부를 결정한다(블록 140). 만약 그렇다면, 디폴트 페이지 관리 정책이 메모리 제어기(28)에 의해 적용될 수 있으며(블록 142), 이는 액세스 이후 현재 메모리 페이지(36)를 폐쇄하는 것일 수 있다. 만약 그렇지 않다면, 이것은 "행 크로싱"이 스트림 트랜잭션을 위한 다음의 메모리 액세스에 대하여 발생하지 않을 것임을 의미한다. 이러한 경우, 메모리 제어기(28)는 현재 메모리 액세스 요청이 종료(블록 146)되기 전에, 액세스 이후 현재 메모리 페이지(36)를 오픈 상태로 유지할 수 있다(블록 144).
도 8은 페이지 관리 정책을 적용하는 메모리 제어기의 다른 예시적인 기준 및 프로세스(88C)의 흐름도이다. 이러한 예에서, 메모리 제어기는 페이지 관리 정책 메모리 내의 동일한 메모리 뱅크를 포함하는 둘 또는 셋 이상의 스트림 트랜잭션들이 활성인지의 여부에 기초하여 페이지 관리 정책을 적용하고, 만약 그렇다면, 추가적인 기준 또는 기준들에 기초하여 페이지 관리 정책을 적용한다. 이러한 프로세스는 도 4a의 블록 88의 일부로서 수행될 수 있다. 도 8에 도시된 바와 같이, 메모리 제어기(28)에 의한 메모리 액세스 이후, 메모리 제어기(28)는 동일한 메모리 뱅크에 존재하는 둘 또는 셋 이상의 계류중인 스트림 트랜잭션들이 있는지의 여부를 결정한다(블록 150). 만약 그렇지 않다면, 메모리 제어기(28)는 디폴트 페이지 관리 정책을 적용할 수 있다(블록 151).
동일한 메모리 뱅크에 존재하는 둘 또는 셋 이상의 계류중인 스트림 트랜잭션들이 있는 경우(블록 150), 메모리 제어기(28)는 계류중인 스트림 트랜잭션들 중 오직 하나 또는 둘 이상이 데드라인이 있는지의 여부를 결정할 수 있다(블록 152). 데드라인이 있는 스트림 트랜잭션은, 스트림 트랜잭션을 완료하기 위해서 일시적 데드라인 요건이 존재하는 스트림 트랜잭션이다. 예를 들어, 스트림 트랜잭션이 비트들의 수 'X'의 서브-전달들의 수 'N'으로 이루어지는 경우, 스트림 트랜잭션과 연관된 데드라인은 서브-전달들 중 각각의 하나를 완료하기 위한 시간일 수 있다. 대안적으로, 스트림 트랜잭션과 연관된 데드라인은 모든 서브-전달들을 완료하기 위한 시간일 수 있다. 또한, 데드라인들은 서브-전달들 및 완료 전달 둘 다와 연관될 수 있다. 일례로서, 이를테면, 예를 들어, 스트림 트랜잭션의 전달에 포함되는 모든 엔티티들이 데드라인이 공통 시간 값에 관하여 결정될 수 있는 공통 클럭 소스를 가지는 경우, 스트림 트랜잭션에 대한 데드라인이 클럭 사이클들에 관하여 제공될 수 있다. 다른 예로서, 스트림 트랜잭션에 대한 데드라인은 스트림 트랜잭션의 전달에 포함되는 엔티티(들)에 의해 계산되는 절대 시간에 관하여 제공될 수 있다.
계류중인 스트림 트랜잭션들 사이의 오직 하나의 스트림 트랜잭션이 데드라인이 있는 경우, 데드라인이 있는 스트림 트랜잭션들에 대한 감소된 메모리 액세스 시간들을 제공하기 위해서 액세스들 이후 데드라인이 있는 스트림 트랜잭션을 위한 메모리 페이지들을 오픈 상태로 유지함으로써, 데드라인이 있는 스트림 트랜잭션에 우선순위가 제공될 수 있다. 이와 관련하여, 메모리 제어기(28)가 데드라인이 있는 스트림 트랜잭션을 현재 프로세싱하고 있는 경우(블록 154), 메모리 제어기(28)는 현재 메모리 액세스 요청을 종료(블록 158)하기 전에 프로세싱되는 스트림 트랜잭션을 위한 현재 메모리 페이지(36)를 오픈 상태로 유지할 수 있다. 메모리 제어기(28)가 데드라인이 있는 스트림 트랜잭션을 현재 프로세싱하고 있지 않은 경우(블록 154), 메모리 제어기(28)는, 원한다면, 현재 메모리 액세스 요청에 대한 디폴트 페이지 관리 정책을 적용할 수 있다(블록 160).
블록(152)에서, 둘 이상의 계류중인 스트림 트랜잭션이 데드라인이 있는 경우, 메모리 제어기(28)는 데드라인이 있는 계류중인 스트림 트랜잭션들 중 하나 또는 둘 이상이 그 데드라인들 이후에 있는지의 여부를 결정한다(블록 162). 오직 하나의 계류중인 스트림 트랜잭션이 데드라인이 있는 경우, 그리고 메모리 제어기(28)가 이러한 데드라인이 있는 스트림 트랜잭션을 현재 프로세싱하고 있는 경우(블록 164), 메모리 제어기(28)는 현재 메모리 페이지(36)를 오픈 상태로 유지한다(블록 156). 메모리 제어기(28)가 그 데드라인 이후에 있는 스트림 트랜잭션을 현재 프로세싱하고 있지 않은 경우(블록 164), 메모리 제어기(28)는 디폴트 페이지 관리 정책을 적용할 수 있다(블록 160).
그러나, 둘 이상의 계류중인 스트림 트랜잭션이 데드라인이 있는 경우(블록 162), 메모리 제어기(28)는 프로세싱되는 현재 스트림 트랜잭션이 현재 프로세싱되지 않는 다른 계류중인 스트림 트랜잭션들보다 더 높은 우선순위를 가지는지의 여부를 결정한다(블록 166). 이와 관련하여, 도 5의 스트림 식별자 블록(98) 내의 우선순위 필드(118)는 현재 스트림 트랜잭션 및 다른 계류중인 스트림 트랜잭션들에 대하여 상의될 수 있다. 프로세싱되는 현재 스트림 트랜잭션이 현재 프로세싱되지 않는 다른 계류중인 스트림 트랜잭션들보다 더 높은 우선순위를 가지는 경우(블록 166), 메모리 제어기(28)는 현재 메모리 페이지(36)를 오픈 상태로 유지할 수 있고(블록 156), 그렇지 않으면, 메모리 제어기(28)는 디폴트 페이지 관리 정책을 적용할 수 있다(블록 160).
현재 스트림 트랜잭션을 위해서 제공된 우선순위 필드(118)가 존재하지 않는 경우, 또는 제공된 우선순위 필드(118)가 존재하고, 둘 또는 셋 이상의 경합하는 데드라인이 있는 스트림 트랜잭션들이 우선순위 필드(118)에서 동일한 우선순위를 가지는 경우, 우선순위 결정은 다른 방식들로 이루어질 수 있다. 예를 들어, 우선순위 결정은 각각의 스트림 트랜잭션이 페이지 관리 정책 결정이 메모리 제어기(28)에 의해 이루어져야 할 주어진 시점에서 전 또는 후로 얼마나 떨어져 있는지를 표시하는 인코딩된 값(예를 들어, 완료의 퍼센티지, 뒤떨어진 클럭 사이클들 또는 뒤떨어진 시간)에 의해 결정될 수 있다. 모든 경합하는 데드라인이 있는 스트림 트랜잭션들이 뒤떨어진(behind) 경우, 인코딩된 값은 각각의 스트림 트랜잭션이 얼마나 뒤떨어져 있는지를 표시할 수 있는데, 이는 페이지 관리 정책에서 어떤 메모리 페이지들이 오픈 상태로 유지되는지를 결정하기 위해서 사용될 수 있다.
도 10-12를 포함하는 본 명세서에서의 페이지 관리 정책 예들이 개별적으로 또는 원한다면 임의로 함께 결합하여 제공될 수 있다는 점에 주목하여야 한다. 또한, 본 명세서에 개시되는 페이지 관리 정책들 중 임의의 페이지 관리 정책 또는 이들 전부는 도 1에 도시된 바와 같이, 컴퓨터 판독가능 매체(33)에서 소프트웨어 명령들을 실행하는 제어기(31)를 포함할 수 있거나 또는 포함하지 않을 수 있는 회로들에 의한 메모리 제어기(28)에 의해 수행될 수 있다. 다른 페이지 관리 정책 기준들은 페이지 관리 정책을 적용하기 위해서 메모리 제어기(28)에 의해 사용될 수 있다.
본 명세서에 개시되는 실시예들에 따라 페이지 관리 정책(들)을 적용하기 위한 메모리 제어기들, 시스템들, 방법들, 및 컴퓨터 판독가능 매체는 메모리로의 액세스를 제어하기 위한 임의의 프로세서-기반 디바이스에서 제공되거나 또는 이에 통합될 수 있다. 예들은, 제한 없이, 셋탑 박스, 엔터테인먼트 유닛, 네비게이션 디바이스, 통신 디바이스, 고정된 위치 데이터 유닛, 모바일 위치 데이터 유닛, 모바일 폰, 셀룰러 폰, 컴퓨터, 휴대용 컴퓨터, 데스크탑 컴퓨터, 개인용 디지털 보조기(PDA), 모니터, 컴퓨터 모니터, 텔레비전, 튜너(tuner), 라디오, 위성 라디오, 음악 플레이어, 디지털 음악 플레이어, 휴대용 음악 플레이어, 디지털 비디오 플레이어, 비디오 플레이어, 디지털 비디오 디스크(DVD) 플레이어, 및 휴대용 디지털 비디오 플레이어를 포함한다.
이와 관련하여, 도 9는 도 1에 도시된 시스템(10)의 컴포넌트들을 사용할 수 있는 프로세서-기반 시스템(170)의 예를 도시한다. 이러한 예에서, 프로세서-기반 시스템(170)은 각각이 하나 또는 둘 이상의 프로세서들(174)을 포함하는 하나 또는 둘 이상의 중앙 처리 유닛(CPU)들(172)을 포함한다. CPU(들)(172)는 마스터 디바이스일 수 있다. CPU(들)(172)는 일시적으로 저장된 데이터로의 신속한 액세스를 위한 프로세서(들)(174)에 커플링된 캐쉬 메모리(176)를 가질 수 있다. CPU(들)(172)는 프로세서-기반 시스템(170)에 포함된 다른 디바이스들을 상호커플링시키는 시스템 버스(180)에 커플링된다. 시스템 버스(180)는 도 1의 버스 상호접속부(16)와 같은 버스 상호접속부일 수 있다. 잘 알려져 있는 바와 같이, CPU(들)(172)는 시스템 버스(180)를 통해 주소, 제어 및 데이터 정보를 교환함으로써 이러한 다른 디바이스들과 통신한다. 예를 들어, CPU(들)(172)는 슬래이브 디바이스로서 메모리 제어기(28)로의 통신들을 통해 메모리 액세스 요청들을 외부 메모리로 통신할 수 있다. 도 9에 도시되지 않았지만, 다수의 시스템 버스들(180)이 제공될 수 있으며, 여기서 각각의 시스템 버스(180)는 상이한 패브릭을 구성한다.
다른 마스터 및 슬래이브 디바이스들은 시스템 버스(180)에 접속될 수 있다. 도 9에 도시된 바와 같이, 이러한 디바이스들은 예들로서, 메모리 시스템(24), 하나 또는 둘 이상의 입력 디바이스들(184), 하나 또는 둘 이상의 출력 디바이스들(186), 하나 또는 둘 이상의 네트워크 인터페이스 디바이스들(188) 및 하나 또는 둘 이상의 디스플레이 제어기들(190)을 포함할 수 있다. 입력 디바이스(들)(184)는 입력 키들, 스위치들, 음성 프로세서들 등을 포함하는(그러나, 이들로 제한되지 않음) 임의의 타입의 입력 디바이스를 포함할 수 있다. 출력 디바이스(들)(186)는 오디오, 비디오, 다른 시각적 표시자들 등을 포함하는(그러나, 이들로 제한되지 않음) 임의의 타입의 출력 디바이스를 포함할 수 있다. 네트워크 인터페이스 디바이스(들)(188)는 네트워크(192)로의 그리고 네트워크(192)로부터의 데이터의 교환을 허용하도록 구성되는 임의의 디바이스일 수 있다. 네트워크(192)는 유선 또는 무선 네트워크, 사설 또는 공공 네트워크, 로컬 영역 네트워크(LAN), 광역 로컬 네트워크(WLAN) 및 인터넷을 포함하는(그러나, 이들로 제한되지 않음) 임의의 타입의 네트워크일 수 있다. 네트워크 인터페이스 디바이스(들)(188)는 원하는 임의의 타입의 통신 프로토콜을 지원하도록 구성될 수 있다. 메모리 시스템(24)은 메모리(26)에 커플링된 메모리 제어기(28)를 포함할 수 있다. 메모리(26)는 도 1의 메모리 시스템(10)에 제공되는 것과 같은 하나 또는 둘 이상의 메모리 유닛들 30(0)-30(N)을 포함할 수 있다. 중재기(20)는 메모리 유닛들 30(0)-30(N)로의 액세스를 제어하기 위해서 도 1의 메모리 시스템(24)에 제공되는 것과 같은 메모리 유닛들 30(0)-30(N)과 시스템 버스(180) 사이에 제공될 수 있다.
CPU(172)는 또한, 하나 또는 둘 이상의 디스플레이들(194)에 전송된 정보를 제어하기 위해서 시스템 버스(180)를 통해 디스플레이 제어기(들)(190)에 액세스하도록 구성될 수 있다. 디스플레이 제어기(들)(190)는 디스플레이될 정보를 디스플레이(들)(194)에 적합한 포맷으로 프로세싱하는 하나 또는 둘 이상의 비디오 프로세서들(196)을 통해 디스플레이될 정보를 디스플레이(들)(194)에 전송한다. 디스플레이(들)(194)는 캐소드 레이 튜브(CRT: cathode ray tube), 액정 디스플레이(LCD: liquid crystal display), 플라즈마 디스플레이 등을 포함하는(그러나, 이들로 제한되지 않음) 임의의 타입의 디스플레이를 포함할 수 있다.
CPU(들)(172) 및 디스플레이 제어기(들)(190)는 시스템 버스(180)를 통해 중재기(20)에 메모리 액세스 요청들을 수행하기 위해서 마스터 디바이스들로서 역할을 할 수 있다. CPU(들)(172) 및 디스플레이 제어기(들)(190) 내에서의 상이한 스레드들은 중재기(20)에 요청들을 수행할 수 있다. CPU(들)(172) 및 디스플레이 제어기(들)(190)는 메모리 시스템(24)으로의 메모리 액세스를 요청하는 것을 결정하기 위해서 앞서 설명된 바와 같이 마스터 식별자(92)를 중재기(20)에 제공할 수 있다.
당업자들은 본 명세서에 개시되는 실시예들과 관련하여 설명되는 다양한 예시적인 논리 블록들, 모듈들, 회로들 및 알고리즘들이 전자 하드웨어, 메모리 또는 다른 컴퓨터 판독가능 매체에 저장되어 프로세서 또는 다른 프로세싱 디바이스에 의해 실행되는 명령들, 또는 이 둘의 조합들로서 구현될 수 있다는 것을 추가로 인식할 것이다. 본 명세서에 설명되는 메모리 제어기들, 중재기, 마스터 디바이스들 및 서브-마스터 디바이스들은 예들로서, 임의의 회로, 하드웨어 컴포넌트, 집적 회로(IC) 또는 IC 칩에서 사용될 수 있다. 메모리는 임의의 타입 및 크기의 메모리일 수 있으며, 원하는 임의의 타입의 정보를 저장하도록 구성될 수 있다. 이러한 상호교환가능성을 명백하게 예시하기 위해서, 다양한 예시적인 컴포넌트들, 블록들, 모듈들, 회로들 및 단계들이 일반적으로 그들의 기능에 관하여 위에서 설명되었다. 이러한 기능이 어떻게 구현되는지는 전체 시스템에 부과되는 특정 애플리케이션, 설계 선택들 및/또는 설계 제약들에 의존한다. 당업자들은 각각의 특정 애플리케이션에 대하여 다양한 방식들로, 설명된 기능을 구현할 수 있지만, 이러한 구현 결정들이 본 발명의 범위로부터의 이탈을 야기하게 하는 것으로 해석되어서는 안 된다.
본 명세서에 개시되는 실시예들과 관련하여 설명되는 다양한 예시적인 논리 블록들, 모듈들 및 회로들은 프로세서, DSP, 주문형 집적 회로(ASIC), FPGA 또는 다른 프로그램가능 로직 디바이스, 이산 게이트 또는 트랜지스터 로직, 이산 하드웨어 컴포넌트들, 또는 본 명세서에 설명되는 기능들을 수행하도록 설계되는 이들의 임의의 조합으로 구현 또는 수행될 수 있다. 예를 들어, 버스 상호접속부는 필드 프로그램가능 게이트 어레이(FPGA), 동기식 집적 회로(ASIC), 비동기식 동기식 집적 회로(ASIC: asynchronous synchronous integrated circuit), 제어기, 마이크로제어기 또는 소프트웨어 명령들을 실행할 수 있는 마이크로프로세서 또는 이들의 임의의 조합들에 의해 제공될 수 있다. 프로세서는 마이크로프로세서일 수 있지만 대안적으로, 프로세서는 임의의 종래의 프로세서, 제어기, 마이크로제어기 또는 상태 머신일 수 있다. 프로세서는 또한 컴퓨팅 디바이스들의 조합 예를 들어, DSP 및 마이크로프로세서의 조합, 복수의 마이크로프로세서들, DSP 코어와 결합한 하나 또는 둘 이상의 마이크로프로세서들, 또는 임의의 다른 이러한 구성으로 구현될 수 있다.
본 명세서에 개시되는 실시예들은 하드웨어에 저장된 명령들에서 그리고 하드웨어에서 구현될 수 있으며, 예를 들어, 랜덤 액세스 메모리(RAM), 플래쉬 메모리, 판독 전용 메모리(ROM), 전기적 프로그램가능 ROM(EPROM), 전기적 삭제가능한 프로그램가능 ROM(EEPROM), 레지스터들, 하드 디스크, 이동식(removable) 디스크, CD-ROM 또는 당해 기술분야에 알려져 있는 임의의 다른 형태의 컴퓨터 판독가능 매체 내에 상주할 수 있다. 예시적인 저장 매체는 프로세서가 저장 매체로부터 정보를 판독하고 저장 매체에 정보를 기록할 수 있도록 프로세서에 커플링된다. 대안적으로, 저장 매체는 프로세서에 통합될 수 있다. 프로세서 및 저장 매체는 ASIC 내에 상주할 수 있다. ASIC는 원격국 내에 상주할 수 있다. 대안적으로, 프로세서 및 저장 매체는 원격국, 기지국 또는 서버에 개별 컴포넌트들로서 상주할 수 있다.
또한, 본 명세서에서의 예시적인 실시예들 중 임의의 것에서 설명되는 동작 단계들이 예들 및 논의를 제공하기 위해서 설명된다는 점에 주목하여야 한다. 설명되는 동작들은 예시되는 시퀀스들 외에 다수의 상이한 시퀀스들에서 수행될 수 있다. 또한, 단일 동작 단계에서 설명되는 동작들은 실제로 다수의 상이한 단계들에서 수행될 수 있다. 추가적으로, 예시적인 실시예들에서 논의되는 하나 또는 둘 이상의 동작 단계들이 조합될 수 있다. 흐름도들에 도시되는 동작 단계들은 당업자에게 용이하게 명백할 것과 같이 다수의 상이한 변경들이 취해질 수 있다는 것이 이해될 것이다. 당업자들은 정보 및 신호들이 다양한 상이한 기술들 및 기법들 중 임의의 것을 사용하여 표현될 수 있다는 것을 이해할 것이다. 예를 들어, 위의 설명의 전체에 걸쳐 참조될 수 있는 데이터, 명령들, 커맨드들, 정보, 신호들, 비트들, 심볼들 및 칩들은 전압들, 전류들, 전자기파들, 자기장들 또는 자기 입자들, 광 필드들 또는 광입자들 또는 이들의 임의의 조합으로 표현될 수 있다.
본 개시의 이전의 설명은 임의의 당업자가 본 개시를 실시하거나 또는 이용할 수 있도록 제공된다. 본 개시에 대한 다양한 변경들은 당업자들에게 용이하게 명백할 것이고, 본 명세서에서 정의되는 일반적인 원리들은 본 개시의 사상 또는 범위로부터 벗어나지 않고 다른 변화들에 적용될 수 있다. 따라서, 본 개시는 본 명세서에 설명되는 예들 및 설계들에 제한되는 것으로 의도된 것이 아니라, 본 명세서에 개시되는 원리들 및 신규한 특징들과 일치하는 가장 넓은 범위를 따를 것이다.

Claims (31)

  1. 메모리 제어기로서,
    스트림 트랜잭션을 위한 메모리 액세스 요청을 수신하고, 상기 스트림 트랜잭션에 포함된 메모리 내의 적어도 하나의 메모리 페이지로의 메모리 액세스를 수행하도록 구성되는 제어기를 포함하고,
    상기 제어기는 상기 스트림 트랜잭션과 관련된 정보에 기초하여 상기 적어도 하나의 메모리 페이지에 페이지 관리 정책을 적용하도록 구성되는,
    메모리 제어기.
  2. 제 1 항에 있어서,
    상기 스트림 트랜잭션과 관련된 정보는, 마스터 식별자, 스트림 식별자, 스트림 트랜잭션과 연관된 우선순위 및 상기 스트림 트랜잭션과 연관된 데드라인으로 구성되는 그룹으로부터 선택되는 정보인,
    메모리 제어기.
  3. 제 1 항에 있어서,
    상기 페이지 관리 정책은, 상기 스트림 트랜잭션을 위한 현재 메모리 페이지가 계류중인 스트림 트랜잭션에 의해 액세스될 상기 메모리 내의 상기 현재 메모리 페이지 다음의 메모리 페이지인지의 여부에 기초하는,
    메모리 제어기.
  4. 제 3 항에 있어서,
    상기 계류중인 스트림 트랜잭션을 위한 계류중인 메모리 액세스 요청이 데드라인 이후에 있는 경우, 상기 페이지 관리 정책은 메모리 페이지를 오픈 상태로 유지하는,
    메모리 제어기.
  5. 제 4 항에 있어서,
    상기 스트림 트랜잭션을 위한 상기 계류중인 메모리 액세스 요청은, 상기 스트림 트랜잭션을 위한 상기 메모리 액세스 요청 및 다른 스트림 트랜잭션을 위한 다른 메모리 액세스 요청으로 구성되는 그룹으로부터 선택되는,
    메모리 제어기.
  6. 제 1 항에 있어서,
    상기 페이지 관리 정책은, 상기 메모리 액세스 요청에 대한 다음의 메모리 페이지가 상기 메모리 액세스 요청에 대한 현재 메모리 페이지가 아닌지의 여부에 기초하는,
    메모리 제어기.
  7. 제 1 항에 있어서,
    상기 페이지 관리 정책은, 상기 메모리 내의 동일한 메모리 뱅크로의 복수의 스트림 트랜잭션들을 위한 복수의 메모리 액세스 요청들이 존재하는지의 여부에 기초하는,
    메모리 제어기.
  8. 제 7 항에 있어서,
    상기 페이지 관리 정책은, 스트림 트랜잭션들을 위한 상기 복수의 메모리 액세스 요청들 중 적어도 하나가 데드라인이 있는지 그리고 스트림 트랜잭션들을 위한 상기 복수의 메모리 액세스 요청들 중 적어도 하나가 데드라인이 있지 않는지에 기초하는,
    메모리 제어기.
  9. 제 8 항에 있어서,
    상기 페이지 관리 정책은, 데드라인이 있지 않는 스트림 트랜잭션들을 위한 상기 복수의 메모리 액세스 요청들 중 적어도 하나에 대한 메모리 페이지를 폐쇄(close)하는,
    메모리 제어기.
  10. 제 8 항에 있어서,
    상기 페이지 관리 정책은, 데드라인이 있는 스트림 트랜잭션들을 위한 상기 복수의 메모리 액세스 요청들 중 적어도 하나에 대한 메모리 페이지를 오픈 상태로 유지하는,
    메모리 제어기.
  11. 제 7 항에 있어서,
    상기 페이지 관리 정책은, 스트림 트랜잭션들을 위한 상기 복수의 메모리 액세스 요청들 중 둘 또는 셋 이상이 데드라인이 있는지의 여부에 기초하는,
    메모리 제어기.
  12. 제 11 항에 있어서,
    상기 페이지 관리 정책은, 자신의 데드라인에 맞추지 않는 스트림 트랜잭션들을 위한 상기 복수의 메모리 액세스 요청들 사이의 상기 스트림 트랜잭션을 위한 상기 메모리 액세스 요청에 대한 메모리 페이지를 오픈 상태로 유지하는,
    메모리 제어기.
  13. 제 11 항에 있어서,
    상기 페이지 관리 정책은, 자신의 데드라인들에 맞추지 않는 스트림 트랜잭션들을 위한 상기 복수의 메모리 액세스 요청들 중 둘 또는 셋 이상의 우선순위들에 추가로 기초하는,
    메모리 제어기.
  14. 제 11 항에 있어서,
    상기 페이지 관리 정책은, 자신의 데드라인들에 맞추지 않는 스트림 트랜잭션들을 위한 상기 복수의 메모리 액세스 요청들 중 둘 또는 셋 이상의 마스터 식별자들에 추가로 기초하는,
    메모리 제어기.
  15. 제 11 항에 있어서,
    상기 페이지 관리 정책은, 스트림 트랜잭션들을 위한 상기 복수의 메모리 액세스 요청들 중 둘 또는 셋 이상 중 적어도 하나가 우선순위를 가지지 않음에 추가로 기초하는,
    메모리 제어기.
  16. 제 1 항에 있어서,
    반도체 다이에 통합되는,
    메모리 제어기.
  17. 제 1 항에 있어서,
    상기 메모리 제어기가 통합되는, 셋탑 박스, 엔터테인먼트 유닛, 네비게이션 디바이스, 통신 디바이스, 고정된 위치 데이터 유닛, 모바일 위치 데이터 유닛, 모바일 폰, 셀룰러 폰, 컴퓨터, 휴대용 컴퓨터, 데스크탑 컴퓨터, 개인용 디지털 보조기(PDA), 모니터, 컴퓨터 모니터, 텔레비전, 튜너(tuner), 라디오, 위성 라디오, 음악 플레이어, 디지털 음악 플레이어, 휴대용 음악 플레이어, 디지털 비디오 플레이어, 비디오 플레이어, 디지털 비디오 디스크(DVD) 플레이어, 및 휴대용 디지털 비디오 플레이어로 구성되는 그룹으로부터 선택되는 디바이스를 더 포함하는,
    메모리 제어기.
  18. 메모리에 액세스하기 위한 방법으로서,
    메모리 제어기에서 스트림 트랜잭션을 위한 메모리 액세스 요청을 수신하는 단계;
    상기 스트림 트랜잭션에 의해 참조되는 메모리 내의 적어도 하나의 메모리 페이지로의 메모리 액세스를 수행하는 단계;
    상기 스트림 트랜잭션과 관련된 정보에 기초하여 상기 적어도 하나의 메모리 페이지에 대한 페이지 관리 정책을 결정하는 단계; 및
    상기 적어도 하나의 메모리 페이지에 페이지 관리 정책을 적용하는 단계를 포함하는,
    메모리에 액세스하기 위한 방법.
  19. 제 18 항에 있어서,
    상기 적어도 하나의 메모리 페이지에 대한 페이지 관리 정책을 결정하는 단계는, 상기 스트림 트랜잭션을 위한 현재 메모리 페이지가 계류중인 스트림 트랜잭션에 의해 액세스될 상기 메모리 내의 상기 현재 메모리 페이지 다음의 메모리 페이지인지의 여부에 기초하는,
    메모리에 액세스하기 위한 방법.
  20. 제 18 항에 있어서,
    상기 페이지 관리 정책은, 스트림 트랜잭션을 위한 계류중인 메모리 액세스 요청이 데드라인 이후에 있는 경우 메모리 페이지를 오픈 상태로 유지하는,
    메모리에 액세스하기 위한 방법.
  21. 제 18 항에 있어서,
    상기 적어도 하나의 메모리 페이지에 대한 페이지 관리 정책을 결정하는 단계는, 상기 메모리 액세스 요청에 대한 다음의 메모리 페이지가 상기 메모리 액세스 요청에 대한 현재 메모리 페이지가 아닌지의 여부에 기초하는,
    메모리에 액세스하기 위한 방법.
  22. 제 18 항에 있어서,
    상기 적어도 하나의 메모리 페이지에 대한 페이지 관리 정책을 결정하는 단계는, 상기 메모리 내의 동일한 메모리 뱅크로의 스트림 트랜잭션들을 위한 복수의 메모리 액세스 요청들이 존재하는지의 여부에 기초하는,
    메모리에 액세스하기 위한 방법.
  23. 제 22 항에 있어서,
    상기 적어도 하나의 메모리 페이지에 대한 페이지 관리 정책을 결정하는 단계는, 스트림 트랜잭션들을 위한 상기 복수의 메모리 액세스 요청들 중 적어도 하나가 데드라인이 있는지 그리고 스트림 트랜잭션들을 위한 상기 복수의 메모리 액세스 요청들 중 적어도 하나가 데드라인이 있지 않는지에 기초하는,
    메모리에 액세스하기 위한 방법.
  24. 제 23 항에 있어서,
    상기 페이지 관리 정책은, 데드라인이 있지 않는 스트림 트랜잭션들을 위한 상기 복수의 메모리 액세스 요청들 중 적어도 하나에 대한 메모리 페이지를 폐쇄(close)하는,
    메모리에 액세스하기 위한 방법.
  25. 제 23 항에 있어서,
    상기 페이지 관리 정책은, 데드라인이 있는 스트림 트랜잭션들을 위한 상기 복수의 메모리 액세스 요청들 중 적어도 하나에 대한 메모리 페이지를 오픈 상태로 유지하는,
    메모리에 액세스하기 위한 방법.
  26. 제 22 항에 있어서,
    상기 적어도 하나의 메모리 페이지에 대한 페이지 관리 정책을 결정하는 단계는, 스트림 트랜잭션들을 위한 상기 복수의 메모리 액세스 요청들 중 둘 또는 셋 이상이 데드라인이 있는지의 여부에 기초하는,
    메모리에 액세스하기 위한 방법.
  27. 제 22 항에 있어서,
    상기 적어도 하나의 메모리 페이지에 대한 페이지 관리 정책을 결정하는 단계는, 스트림 트랜잭션들을 위한 상기 복수의 메모리 액세스 요청들 중 둘 또는 셋 이상 중 적어도 하나가 우선순위를 가지지 않음에 추가로 기초하는,
    메모리에 액세스하기 위한 방법.
  28. 메모리 제어기로 하여금, 스트림 트랜잭션을 위한 메모리 액세스 요청을 수신하게 하고, 상기 스트림 트랜잭션에 포함되는 메모리 내의 적어도 하나의 메모리 페이지로의 메모리 액세스를 수행하게 하고, 그리고 상기 스트림 트랜잭션과 관련된 정보에 기초하여 상기 적어도 하나의 메모리 페이지에 페이지 관리 정책을 적용하게 하기 위한 컴퓨터 실행가능 명령들이 저장된 컴퓨터 판독가능 매체.
  29. 제 28 항에 있어서,
    상기 메모리 제어기로 하여금, 상기 스트림 트랜잭션을 위한 현재 메모리 페이지가 계류중인 스트림 트랜잭션에 의해 액세스될 상기 메모리 내의 상기 현재 메모리 페이지 다음의 메모리 페이지인지의 여부에 기초하여 상기 페이지 관리 정책을 적용하게 하기 위한 컴퓨터 실행가능 명령들을 더 포함하는,
    컴퓨터 판독가능 매체.
  30. 제 28 항에 있어서,
    상기 메모리 제어기로 하여금, 상기 메모리 액세스 요청에 대한 다음의 메모리 페이지가 상기 메모리 액세스 요청에 대한 현재 메모리 페이지가 아닌지의 여부에 기초하여 상기 페이지 관리 정책을 적용하게 하기 위한 컴퓨터 실행가능 명령들을 더 포함하는,
    컴퓨터 판독가능 매체.
  31. 제 28 항에 있어서,
    상기 메모리 제어기로 하여금, 상기 메모리 내의 동일한 메모리 뱅크로의 스트림 트랜잭션들을 위한 복수의 메모리 액세스 요청들이 존재하는지의 여부에 기초하여 상기 페이지 관리 정책을 적용하게 하기 위한 컴퓨터 실행가능 명령들을 더 포함하는,
    컴퓨터 판독가능 매체.
KR1020137011949A 2010-10-08 2011-10-10 스트림 트랜잭션 정보에 기초하여 페이지 관리 정책들을 적용하기 위한 메모리 제어기들, 시스템들 및 방법들 KR101881089B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/900,857 2010-10-08
US12/900,857 US8615638B2 (en) 2010-10-08 2010-10-08 Memory controllers, systems and methods for applying page management policies based on stream transaction information
PCT/US2011/055637 WO2012048327A1 (en) 2010-10-08 2011-10-10 Memory controllers, systems, and methods for applying page management policies based on stream transaction information

Publications (2)

Publication Number Publication Date
KR20130121105A true KR20130121105A (ko) 2013-11-05
KR101881089B1 KR101881089B1 (ko) 2018-07-23

Family

ID=44898184

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137011949A KR101881089B1 (ko) 2010-10-08 2011-10-10 스트림 트랜잭션 정보에 기초하여 페이지 관리 정책들을 적용하기 위한 메모리 제어기들, 시스템들 및 방법들

Country Status (6)

Country Link
US (1) US8615638B2 (ko)
EP (1) EP2625618B1 (ko)
JP (1) JP5893632B2 (ko)
KR (1) KR101881089B1 (ko)
CN (1) CN103154918B (ko)
WO (1) WO2012048327A1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170133256A (ko) * 2016-05-25 2017-12-05 삼성전자주식회사 액세스 파라미터 기반의 다중-스트림 스토리지 장치 액세스
KR20180026327A (ko) * 2016-09-02 2018-03-12 삼성전자주식회사 자동 스트림 검출 및 할당 알고리즘
US11392297B2 (en) 2015-07-13 2022-07-19 Samsung Electronics Co., Ltd. Automatic stream detection and assignment algorithm

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005191508A (ja) * 2003-12-05 2005-07-14 Rohm Co Ltd 半導体装置およびその製造方法
US20120089759A1 (en) * 2010-10-08 2012-04-12 Qualcomm Incorporated Arbitrating Stream Transactions Based on Information Related to the Stream Transaction(s)
JP6139010B2 (ja) 2013-03-15 2017-05-31 インテル・コーポレーション デバイス
US9442971B2 (en) * 2013-04-17 2016-09-13 International Business Machines Corporation Weighted transaction priority based dynamically upon phase of transaction completion
US9703493B2 (en) 2015-12-14 2017-07-11 Qualcomm Incorporated Single-stage arbiter/scheduler for a memory system comprising a volatile memory and a shared cache
US10163508B2 (en) 2016-02-26 2018-12-25 Intel Corporation Supporting multiple memory types in a memory slot
TW201830245A (zh) * 2016-10-17 2018-08-16 達宙科技股份有限公司 記憶體裝置及其運作方法
US10541044B2 (en) * 2016-10-31 2020-01-21 Qualcomm Incorporated Providing efficient handling of memory array failures in processor-based systems
US10664306B2 (en) * 2017-01-13 2020-05-26 Arm Limited Memory partitioning
US10991417B1 (en) * 2019-05-24 2021-04-27 Xilinx, Inc. Auto-precharge management in a controller
KR20200136183A (ko) 2019-05-27 2020-12-07 에스케이하이닉스 주식회사 스토리지 장치 및 그것의 동작 방법
KR102634444B1 (ko) 2019-07-30 2024-02-06 에스케이하이닉스 주식회사 메모리 컨트롤러 및 그 동작 방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000003325A (ja) * 1998-06-12 2000-01-07 Nec Corp 情報処理システム、装置、二次記憶装置及び記録媒体
JP2007334693A (ja) * 2006-06-15 2007-12-27 Canon Inc バス調停装置及び方法
KR20090128851A (ko) * 2008-06-11 2009-12-16 인하대학교 산학협력단 버스 중재 방법 및 장치
KR20100055503A (ko) * 2007-08-22 2010-05-26 어드밴스드 마이크로 디바이시즈, 인코포레이티드 추론적 프리챠지의 검출

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07200386A (ja) * 1993-12-28 1995-08-04 Toshiba Corp 共有メモリのアクセス制御装置および画像形成装置
US6510497B1 (en) 1998-12-09 2003-01-21 Advanced Micro Devices, Inc. Method and system for page-state sensitive memory control and access in data processing systems
US6546439B1 (en) 1998-12-09 2003-04-08 Advanced Micro Devices, Inc. Method and system for improved data access
US6983350B1 (en) 1999-08-31 2006-01-03 Intel Corporation SDRAM controller for parallel processor architecture
US6381672B1 (en) 2000-05-11 2002-04-30 Advanced Micro Devices, Inc. Speculative opening of a new page when approaching page boundary during read/write of isochronous streams
US6647456B1 (en) 2001-02-23 2003-11-11 Nvidia Corporation High bandwidth-low latency memory controller
JP4250989B2 (ja) * 2003-03-26 2009-04-08 日本電気株式会社 メモリアクセス制御装置
US20050044174A1 (en) * 2003-04-11 2005-02-24 Sun Microsystems, Inc. Multi-node computer system where active devices selectively initiate certain transactions using remote-type address packets
US8478921B2 (en) 2004-03-31 2013-07-02 Silicon Laboratories, Inc. Communication apparatus implementing time domain isolation with restricted bus access
US7363406B2 (en) 2004-12-08 2008-04-22 Motorola, Inc. Dynamic access scheduling memory controller
US8006017B2 (en) 2004-12-21 2011-08-23 Intel Corporation Stream priority
JP2007334564A (ja) * 2006-06-14 2007-12-27 Matsushita Electric Ind Co Ltd ユニファイドメモリシステム
US7606988B2 (en) 2007-01-29 2009-10-20 International Business Machines Corporation Systems and methods for providing a dynamic memory bank page policy
JP5034551B2 (ja) * 2007-02-26 2012-09-26 富士通セミコンダクター株式会社 メモリコントローラ、半導体メモリのアクセス制御方法およびシステム
US8452907B2 (en) 2007-03-27 2013-05-28 Arm Limited Data processing apparatus and method for arbitrating access to a shared resource
JP2008287528A (ja) * 2007-05-18 2008-11-27 Renesas Technology Corp リクエスト調停装置及びメモリコントローラ
US20120089759A1 (en) 2010-10-08 2012-04-12 Qualcomm Incorporated Arbitrating Stream Transactions Based on Information Related to the Stream Transaction(s)

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000003325A (ja) * 1998-06-12 2000-01-07 Nec Corp 情報処理システム、装置、二次記憶装置及び記録媒体
JP2007334693A (ja) * 2006-06-15 2007-12-27 Canon Inc バス調停装置及び方法
KR20100055503A (ko) * 2007-08-22 2010-05-26 어드밴스드 마이크로 디바이시즈, 인코포레이티드 추론적 프리챠지의 검출
KR20090128851A (ko) * 2008-06-11 2009-12-16 인하대학교 산학협력단 버스 중재 방법 및 장치

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11392297B2 (en) 2015-07-13 2022-07-19 Samsung Electronics Co., Ltd. Automatic stream detection and assignment algorithm
KR20170133256A (ko) * 2016-05-25 2017-12-05 삼성전자주식회사 액세스 파라미터 기반의 다중-스트림 스토리지 장치 액세스
KR20180026327A (ko) * 2016-09-02 2018-03-12 삼성전자주식회사 자동 스트림 검출 및 할당 알고리즘

Also Published As

Publication number Publication date
WO2012048327A1 (en) 2012-04-12
CN103154918A (zh) 2013-06-12
JP2013539148A (ja) 2013-10-17
JP5893632B2 (ja) 2016-03-23
EP2625618A1 (en) 2013-08-14
CN103154918B (zh) 2016-08-10
EP2625618B1 (en) 2014-11-19
US20120089789A1 (en) 2012-04-12
US8615638B2 (en) 2013-12-24
KR101881089B1 (ko) 2018-07-23

Similar Documents

Publication Publication Date Title
KR101881089B1 (ko) 스트림 트랜잭션 정보에 기초하여 페이지 관리 정책들을 적용하기 위한 메모리 제어기들, 시스템들 및 방법들
EP3729281B1 (en) Scheduling memory requests with non-uniform latencies
EP2946302B1 (en) Heterogeneous memory systems, and related methods and computer-readable media for supporting heterogeneous memory access requests in processor-based systems
US20110055495A1 (en) Memory Controller Page Management Devices, Systems, and Methods
US8533403B1 (en) Arbitration unit for memory system
US9703493B2 (en) Single-stage arbiter/scheduler for a memory system comprising a volatile memory and a shared cache
JP5746136B2 (ja) メモリアクセス時間を最適化するための、メモリアクセスコントローラ、システム、および方法
US9881680B2 (en) Multi-host power controller (MHPC) of a flash-memory-based storage device
JP5662585B2 (ja) ストリームトランザクションに関連する情報に基づくストリームトランザクションのアービトレーション
CN111684430A (zh) 支持同一信道上对不统一等待时间的存储器类型的响应
US10255218B1 (en) Systems and methods for maintaining specific ordering in bus traffic
US8856459B1 (en) Matrix for numerical comparison
US11093416B1 (en) Memory system supporting programmable selective access to subsets of parallel-arranged memory chips for efficient memory accesses
US20210286740A1 (en) In-line memory module (imm) computing node with an embedded processor(s) to support local processing of memory-based operations for lower latency and reduced power consumption
KR20070020391A (ko) 스트리밍 id 방법에 의한 dmac 발행 메커니즘

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