KR100523966B1 - 멀티 바이트 버스트 메모리에 적합한 유효 바이트 판정 방법 - Google Patents

멀티 바이트 버스트 메모리에 적합한 유효 바이트 판정 방법 Download PDF

Info

Publication number
KR100523966B1
KR100523966B1 KR10-2003-7005033A KR20037005033A KR100523966B1 KR 100523966 B1 KR100523966 B1 KR 100523966B1 KR 20037005033 A KR20037005033 A KR 20037005033A KR 100523966 B1 KR100523966 B1 KR 100523966B1
Authority
KR
South Korea
Prior art keywords
word
byte
value
bit
enable
Prior art date
Application number
KR10-2003-7005033A
Other languages
English (en)
Other versions
KR20030042007A (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 KR20030042007A publication Critical patent/KR20030042007A/ko
Application granted granted Critical
Publication of KR100523966B1 publication Critical patent/KR100523966B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)
  • Storage Device Security (AREA)
  • Information Transfer Systems (AREA)

Abstract

멀티 바이트 버스트 메모리 디바이스(102)용의 메모리 컨트롤러(104)는 클라이언트(106)에 의해 셋업된 파라미터에 기초해서 메모리에 대한 액세스를 제어할 수 있다. 이들 파라미터는 바이트 어드레스와 클라이언트가 메모리부터 요청하고 있는 바이트의 수를 지시하는 바이트 카운트를 포함할 수 있다. 이들 값과 버스트 액세스된 워드에서 바이트수를 나타내는 정수를 연산하여, 버스트 액세스된 워드에서 유효 바이트를 식별하는데 사용될 수 있는 워드를 형성할 수 있다.

Description

멀티 바이트 버스트 메모리에 적합한 유효 바이트 판정 방법{METHOD FOR DETERMINING VALID BYTES FOR MULTIPLE-BYTE BURST MEMORIES}
본 발명은 데이터 프로세서에 관한 것으로서, 더욱 상세하게는 버스트 메모리 액세스를 지원하는 데이터 프로세서에 관한 것이다.
컴퓨터 시스템에 있어서, 중앙 처리 장치(CPU)는 데이터 요소를 총괄적으로 기억하는 메모리 셀 그룹의 고유한 위치를 지시하는 어드레스를 제공함으로써 메모리를 액세스할 수 있다. CPU는 그 어드레스를 어드레스 버스에 제공하고, 어드레스가 유효하고 버스 사이클이 시작되었다는 신호에 하나 이상의 제어 신호를 제공함으로써 버스 사이클을 개시할 수 있다. 판독/기록 제어 신호는 이어서 액세스가 판독 액세스인지 혹은 기록 액세스인지를 지시한다. 연속해서, 버스 사이클이 판독 사이클이면 데이터 버스로부터 데이터 요소가 판독되고, 버스 사이클이 기록 사이클이면 데이터 버스에 데이터 요소가 제공된다.
메모리에 대한 초기 액세스를 수행할 때 많은 연산이 행해질 수 있다. 이들 연산은 초기 액세스를 비교적 느리게 할 수 있다. 전술한 바와 같이, 프로세스를 시작하기 위해 소정의 신호가 설정될 수 있다. 다음에, 어드레스가 메모리에 전달될 수 있다. 이 단계들 후에, 데이터 자체가 전송될 수 있다. 이러한 연산 오버헤드 또는 지연으로 인해, 메모리에 대한 초기 액세스에는 예컨대 많은 디바이스에서 4 내지 7 클록 사이클의 비교적 긴 시간이 걸릴 수 있다.
메모리의 지연 시간을 줄이기 위해, 몇몇 메모리 디바이스는 각 액세스마다 연속적으로 메모리로부터 4개의 64 비트 워드로 이루어진 블록(256 비트 또는 32 바이트)을 판독한다. 이러한 "버스트 액세스 모드" 또는 "버스트 동작(busting)"의 잇점은 후속하는 3개의 액세스마다 초기 액세스의 오버헤드의 반복을 피할 수 있다는 것이다. 이러한 후속 액세스는 4 내지 7 클록 사이클 대신에 1 내지 3 클록 사이클로 단축될 수 있다.
버스트 동작을 지원하는 메모리 디바이스는 바이트별로 어드레스 지정(byte-addressable)이 불가능하다. 특정 바이트 어드레스로 메모리 위치에 액세스하는 대신에, 메모리 디바이스는 멀티 바이트 블록의 데이터 요소를 검색할 수 있다. 데이터 블록에 있는 몇몇의 데이터 요소들은 요청에 적합하지 않을 수 있다. 따라서, 버스트 액세스된 워드에서 유효 데이터 요소를 판정하는 방법을 제공하는 것이 필요하다.
도 1은 본 발명의 실시예에 따른 멀티 바이트 버스트 메모리 디바이스를 포함하는 시스템의 블록도이다.
도 2a와 도 2b는 본 발명의 실시예에 따른 멀티 바이트 버스트 액세스된 워드에서 유효 바이트를 판정하는 연산을 설명하는 흐름도이다.
본 발명의 실시예에 따르면, 멀티 바이트 버스트 메모리 디바이스용 메모리 컨트롤러는 클라이언트에 의해 셋업된 파라미터에 기초해서 메모리에 대한 액세스를 제어할 수 있다. 이들 파라미터는 바이트 어드레스와 클라이언트가 메모리로부터 요청하는 바이트수를 지시하는 바이트 카운트를 포함할 수 있다. 이들 값과 버스트 액세스된 워드의 바이트수를 나타내는 정수 m을 연산하여, 버스트 액세스된 바이트 워드에서 유효 바이트를 식별하는데 이용될 수 있는 워드를 형성할 수 있다.
본 발명의 실시예에 따르면, 메모리 컨트롤러는 버스트 액세스된 워드에서 유효 바이트에 대응하는 유효 비트를 포함하는 m 비트의 바이트 인에이블 워드를 생성할 수 있다. 바이트 어드레스의 일부를 절단하여 n 비트 워드를 형성하고, 그 n 비트 워드와 상기 바이트 카운트 및 m의 값으로부터 인에이블 값을 계산할 수 있다. 미리 시프트된 바이트 인에이블 워드는 인에이블 값과 m의 값으로부터 생성될 수 있다. 미리 시프트된 바이트 인에이블 워드에서 n 비트 워드 값만큼 비트를 시프트함으로써 바이트 인에이블 워드를 생성할 수 있다.
하나 이상의 실시예들의 세부 내용은 첨부 도면과 함께 이하에서 설명한다. 그 실시예들의 기타 특징, 목적 및 장점은 명세서와 도면 그리고 청구범위로부터 명백해 질 것이다.
도 1은 멀티 바이트 버스트 메모리 디바이스(102)를 포함하는 시스템(100)을 도시하고 있다. 메모리 컨트롤러(104)는 판독/기록 버스(108)상에서 클라이언트(106)에 의한 메모리 디바이스(102)의 판독 연산과 기록 연산을 제어할 수 있다.
각각의 클라이언트(106)는 액세스 시작시에 파라미터를 셋업할 수 있다. 이들 파라미터에 기초해서, 메모리 컨트롤러(104)는 각각의 클라이언트의 요청을 처리할 때를 결정할 수 있다. 이들 파라미터는 바이트 카운트와 시작 바이트 어드레스를 포함할 수 있다. 바이트 카운트는 클라이언트(106)가 액세스하고자 하는 메모리 디바이스(102)에서의 바이트수를 나타낸다. 시작 바이트 어드레스는 액세스가 시작될 메모리의 바이트 어드레스를 나타낸다. 메모리 디바이스(102)는 바이트별로 어드레스 지정이 불가능하며, 그렇기 때문에 메모리 디바이스(102)로의 액세스를 멀티 바이트 버스트로 수행할 수 있다. 바이트는 삽입된 바이트를 스킵하는 일없이 선형적 상향 순서(linearly increasing order)로 액세스될 수 있다.
시작 바이트 어드레스는 메모리 디바이스(102)의 입도(granularity) 레벨, 즉 메모리 디바이스(102)로의 버스트 액세스의 정확성을 매칭하는데 필요한 다수의 비트만큼 초기에 절단될 수 있다. 절단된 시작 바이트 어드레스는 클라이언트(106)에 의해 요청된 데이터 요소의 최초 바이트를 포함하는 멀티 바이트 워드로의 액세스를 달성하는데 이용될 수 있는 "워드 어드레스"를 형성할 수 있다. 절단된 비트는 임시적으로 저장되어 그 최초 액세스로부터 어떤 바이트가 유효한 지를 판정하는데 이용된다. 메모리 디바이스(102)로부터 액세스된 최초의 멀티 바이트 버스트 워드는 단지 하나의 유효 바이트 또는 그 이상, 전체 워드까지 포함할 수 있다. 워드 어드레스는 각 액세스 후에 1씩 증가될 수 있다.
바이트 카운트를 바이트 어드레스와 산술적으로 조합하여 "인에이블 값"을 계산할 수 있다. 인에이블 값은 액세스될 유효 바이트수를 나타낼 수 있다. 인에이블 값은 각 액세스 후에 바이트 카운터를 감소시키고, 액세스되었던 최종 바이트 어드레스를 계산하고, 클라이언트 요청을 만족시키기 위해 액세스될 다음 바이트 어드레스를 계산하고, 기록되거나 판독된 바이트에 대한 바이트 인에이블과 패리티 체크 인에이블을 위해 확장되어 이용될 수 있는 워드를 구성하기 위해 사용될 수 있다.
도 2a와 도 2b는 멀티 바이트 버스트 액세스된 워드에서 유효 바이트를 판정하기 위한 연산(200)을 도시하고 있다. 액세스된 워드는 m 바이트이며, 여기서 m = 2n이고, n은 임의의 정수이다. 연산(200)의 설명에 있어서, 정수 m을 "액세스 바이트 값"이라고도 한다.
이하의 설명은 연산(200)을 실행하는 일실시예이다. 다른 실시예에서는 단계를 스킵하거나 다른 순서로 수행될 수 있다.
클라이언트(106)는 단계 202에서 바이트 어드레스(BYTE_ADDRESS)와 바이트 카운트(BYTE_COUNT) 파라미터를 메모리 컨트롤러(104)에 기록할 수 있다. 단계 204에서 바이트 카운트와 바이트 어드레스의 절단된 부분을 더하여 결과를 생성할 수 있다. 바이트 어드레스의 절단된 부분은 바이트 어드레스의 비트 0 내지 x를 포함할 수 있으며, 여기서, x는 액세스 바이트 값에서 1을 뺀 수를 진수로 하는 밑이 2인 로그값과 같다. 그 결과가 단계 206에서 액세스 바이트(ACCESS_BYTE) 값과 같거나 그보다 작다고 판정되면, 인에이블 값(ENABLE_VALUE)은 단계 208에서 바이트 카운트로 설정될 수 있다. 그렇지 않다면, 인에이블 값은 단계 210에서 액세스 바이트 값으로부터 바이트 어드레스를 뺀 값으로 설정될 수 있다. 새로운 바이트 카운트는 단계 212에서 바이트 카운트 값으로부터 인에이블 값을 뺀 값으로 설정될 수 있다. 이 새로운 바이트 카운트가 제로(0)라면, 최종 패킷(LAST_PACKET) 값은 단계 216에서 참(TRUE) 값으로 설정될 수 있다. 새로운 바이트 카운트가 비제로 값이라면, 최종 패킷 값은 단계 218에서 거짓(FALSE) 값으로 설정될 수 있다. 최종 패킷 값은 클라이언트가 메모리 디바이스(102)로부터 모든 요청된 바이트에 액세스하였는지의 여부 또는 또다른 버스트 액세스가 그 요청을 만족시키는데 필요한지의 여부를 판정하는데 사용될 수 있다.
도 2b로 진행하여, 클라이언트 요청을 만족시키는데 필요한 다음 액세스에 대한 어드레스인 "다음 바이트 어드레스(NEXT_BYTE_ADDRESS)"는 단계 220에서 바이트 어드레스를 인에이블 값에 더함으로써 판정될 수 있다. 값 j는 단계 222에서 액세스 바이트 값으로부터 1을 뺀 값으로 설정될 수 있다. j 값은 m 비트의 미리 시프트된 바이트 인에이블 워드가 구성되는 루프 연산에 대해 카운터로서 이용되는 정수일 수 있다. 미리 시프트된 바이트 인에이블 워드는 후술하겠지만 버스트 액세스된 워드에서 유효 바이트를 식별하는데 이용되는 바이트 인에이블 워드에 대한 프리커서(precursor)일 수 있다.
인에이블 값이 단계 224에서 j와 같거나 작다고 판정되면, 미리 시프트된 바이트 인에이블(BYTES_ENABLED_PRE_SHIFT) 워드의 비트는 단계 226에서 제로로 설정될 수 있다. 그 비트는 위치 y에 있고, 여기서 y는 액세스 바이트 값에서 j와 1을 뺀 값과 같다. 그렇지 않으면, 비트 y는 단계 228에서 1로 설정된다. j 값은 단계 230에서 1씩 감소될 수 있다.
단계 232에서 j가 0과 같거나 작다고 판정되면, 연산(200)은 단계 224로 리턴되어 m 비트의 미리 시프트된 바이트 인에이블 워드를 구성하기 위해 계속된다.
단계 232에서 j가 0보다 크다고 판정되면, 연산(200)은 루프를 통과하여 m 비트 바이트 인에이블 워드의 값을 판정한다. 바이트 인에이블 워드의 각 비트는 버스트 액세스된 워드의 비트에 대응할 수 있다. 단계 234에서, 바이트 인에이블 워드의 값은 z 비트만큼 시프트된 비트에 의해, 미리 시프트된 바이트 인에이블 워드의 값으로 설정되며, 여기서 z는 단계 204에서 식별된 바이트 어드레스 워드의 절단된 부분의 값이다.
연산(200)은 다음의 예를 참조해서 또한 이해될 수 있다.
예 1
이 예에서 바이트 어드레스는 8이고, 바이트 카운트는 42이고, 액세스 바이트 값은 32, 즉 버스트 액세스된 워드는 그 폭이 32 바이트이다. 바이트 어드레스와 바이트 카운트의 합은 단계 204에서 계산된다. log2(32) = 5이며, 단계 204에서 이용된 바이트 어드레스의 절단된 부분은 바이트 어드레스의 5개의 최하위 비트를 포함한다. 즉,
BYTE_ADDRESS [5-1:0] =
BYTE_ADDRESS [4:0] = 010002
= 810
이다. 따라서 계산된 결과는 50이다. 이 결과가 액세스 바이트 값 32보다 크기 때문에, 인에이블 값은 단계 210에서 24(액세스 바이트 32에서 바이트 어드레스 8을 뺀 값)로 설정된다.
새로운 바이트 카운트는 이어서 단계 214에서 17(바이트 카운트 41에서 인에이블 값 24를 뺀 값)로 설정된다. 이 값이 제로가 아니기 때문에, 최종 패킷 값은 단계 218에서 거짓(FLASE)으로 설정되어, 이것이 최종 버스트 액세스가 아니라는 것, 즉 클라이언트(106)의 요청을 만족시키는 액세스가 아니라는 것을 표시한다.
다음 바이트 어드레스(NEXT_BYTE_ADDRESS)는 단계 220에서 32(바이트 어드레스 8과 인에이블 값 24를 더한 값)로 설정된다. j 값은 단계 222에서 31로 설정된다. j 값 31이 인에이블 값 24보다 크기 때문에, 단계 226으로 분기된다. 미리 시프트된 바이트 인에이블 워드의 최초 비트가 단계 226에서 다음과 같이 계산된다.
BYTES_ENABLED_PRE_SHIFT [32-1-31] =
BYTES_ENABLED_PRE_SHIFT [0] = 0
따라서, m 비트의 미리 시프트된 바이트 인에이블 워드에서 비트 [0]은 제로로 설정된다. j 값은 단계 230에서 감소되고, 단계 232에서 루프가 계속된다. j의 값이 [31] 내지 [24]일 경우 단계 226으로의 분기가 이루어져셔, 미리 시프트된 바이트 인에이블 워드의 비트 [0] 내지 [7]이 제로로 설정된다. j = [23]일 때, 인에이블 값이 j보다 크므로, 단계 228로 분기된다. 루프가 계속되고, 미리 시프트된 바이트 인에이블 워드의 비트 [8] 내지 [31]은 1로 설정된다. 이 단계에서, 미리 시프트된 바이트 인에이블 워드는 값이 [11111111111111111111111100000000]이다.
미리 시프트된 바이트 인에이블 워드가 구성되었다면, j 값은 단계 230에서 음수 1로 설정되고 연산(200)은 단계 234로 루프를 통과한다. 바이트 인에이블 워드는 z 비트만큼 시프트된 미리 시프트된 바이트 인에이블 워드의 값으로 설정되고, 여기서 z는 바이트 어드레스의 절단된 부분의 값이다. 이 예에서,
BYTE_ADDRESS [log2ab-1 : 0] =
BYTE_ADDRESS [4:0] =
010002 = 810
따라서, 그 값은 시프트된 8비트이며, 다음과 같다.
PRE_SHIFT_BYTES_ENABLED = 11111111111111111111111100000000
BYTES_ENABLED = 00000000111111111111111111111111
이 예에서, 버스트 액세스된 워드의 바이트 [0] 내지 [23]은 유효 바이트로서 처리되고, 바이트 [24] 내지 [31]은 무효 바이트로서 처리된다. 버스트 액세스된 워드의 유효 바이트만이 클라이언트(106)에 의해 액세스될 수 있다.
연산(200)은 특정한 일련의 액세스 파라미터에 대하여 클라이언트(106)에 의한 최초 액세스와 최종 액세스에 대해 가장 효과적일 수 있는데, 삽입 액세스가 모든 유효 바이트를 포함하기 때문이다. 또한, 메모리 컨트롤러(104)는 클라이언트(106)가 요청했던 바이트에 대해 패리티만 체크할 수 있기 때문에, 이 연산(200)을 이용하면, 우수한 데이터 및 패리티로 각각의 위치를 기록함으로써 메모리 디바이스(102)를 초기화할 필요가 없다.
메모리 컨트롤러(104)는 클라이언트(106)에게 다음 바이트 어드레스를 제공할 수 있다. 실시예에 따르면, 클라이언트는 이 어드레스를 저장하여, 완전히 새로운 동작을 새로운 액세스 파라미터로 시작한 후에 상기 저장된 어드레스 정보를 이용하여 또다른 동작을 시작할 수 있다. 이 때 클라이언트(106)는 이전의 판독 동작 또는 기록 동작을 그 중단된 곳에서 정확하게 다시 시작할 수 있다.
본 발명의 많은 실시예들을 설명하였다. 그러나, 본 발명의 범위와 사상에서 벗어나지 않고 다양한 변형 실시예들이 가능할 수 있다. 따라서, 다른 실시예들도 다음의 청구 범위에 포함된다.

Claims (26)

  1. 버스트 메모리로부터 액세스된 m 바이트의 워드에서 유효 바이트를 판정하는 방법에 있어서,
    복수의 액세스 파라미터를 수신하는 단계와,
    상기 액세스 파라미터와 m의 값으로부터 m 비트의 인에이블 워드를 생성하는 단계를 포함하고, 상기 m 비트의 인에이블 워드는 상기 m 바이트 워드에서 적어도 하나의 유효 바이트에 대응하는 적어도 하나의 유효 비트를 포함하는 것인 유효 바이트 판정 방법.
  2. 제1항에 있어서, 메모리에 대한 클라이언트 요청을 수행하는 단계를 더 포함하고, 상기 액세스 파라미터는,
    제1 어드레스와,
    메모리에 대한 상기 클라이언트 요청에서 바이트의 수를 지시하는 바이트 카운트 값을 포함하는 것인 유효 바이트 판정 방법.
  3. 제2항에 있어서, 상기 m 비트의 인에이블 워드를 생성하는 단계는,
    상기 제1 어드레스의 일부를 절단하여 n 비트의 워드를 형성하는 단계와,
    상기 n 비트의 워드, 상기 바이트 카운트 값 및 상기 m의 값으로부터 인에이블 값을 생성하는 단계와,
    상기 인에이블 값과 상기 m의 값으로부터 m 비트의 미리 시프트된 인에이블 워드를 생성하는 단계와,
    상기 m 비트의 미리 시프트된 인에이블 워드에서 n 비트 워드의 값만큼 비트를 시프트하는 단계를 포함하는 것인 유효 바이트 판정 방법.
  4. 제3항에 있어서, 상기 n의 값은 m의 값에서 1을 뺀 수를 진수로 하는 밑이 2인 로그 값이고, 상기 n 비트 워드는 상기 제1 어드레스에서 최하위 비트와 위치 n의 비트를 비롯해서 그 사이에 있는 복수의 비트를 포함하는 것인 유효 바이트 판정 방법.
  5. 제3항에 있어서,
    상기 바이트 카운트 값과 상기 인에이블 값에 응답해서, 메모리에 대한 액세스가 상기 액세스를 발생시킨 클라이언트 요청을 만족시키는 지의 여부를 판정하는 단계를 더 포함하는 유효 바이트 판정 방법.
  6. 제3항에 있어서,
    상기 제1 어드레스와 상기 인에이블 값으로부터 메모리에 대한 후속 액세스용의 제2 어드레스를 생성하는 단계를 더 포함하는 유효 바이트 판정 방법.
  7. 제1항에 있어서, 상기 m의 값은 32인 것인 유효 바이트 판정 방법.
  8. 클라이언트 디바이스로부터의 복수의 액세스 파라미터 및 메모리 디바이스로부터의 버스트 워드의 바이트수를 나타내는 액세스 바이트 값을 수신하기 위한 데이터 입력부와,
    상기 복수의 액세스 파라미터와 상기 액세스 바이트 값에 응답해서 상기 버스트 워드에 있는 적어도 하나의 유효 바이트를 판정하기 위한 인에이블 회로를 포함하는 메모리 컨트롤러.
  9. 제8항에 있어서, 상기 복수의 액세스 파라미터는,
    제1 어드레스와,
    메모리에 대한 클라이언트 요청에서 바이트의 수를 지시하는 바이트 카운트 값을 포함하는 것인 메모리 컨트롤러.
  10. 제9항에 있어서, 상기 버스트 워드에서 적어도 하나의 유효 바이트에 대응하는 적어도 하나의 유효 비트를 포함하는 인에이블 워드를 생성하기 위한 인에이블 워드 발생기를 더 포함하는 메모리 컨트롤러.
  11. 제10항에 있어서, 상기 버스트 워드는 m 바이트 워드를 포함하고, 상기 인에이블 워드는 m 비트 워드를 포함하는 것인 메모리 컨트롤러.
  12. 각각 연관된 어드레스를 갖는 복수의 메모리 요소를 포함하는 메모리 디바이스와,
    클라이언트 디바이스와,
    상기 메모리 디바이스와 상기 클라이언트 디바이스 사이에서 데이터를 전달하기 위한 버스와,
    상기 버스를 통해 상기 메모리 디바이스내의 m 바이트 버스트 워드에 대해, 상기 클라이언트 디바이스에 의한 액세스를 제어하기 위한 메모리 컨트롤러를 포함하고, 상기 메모리 컨트롤러는 상기 클라이언트 디바이스로부터 복수의 액세스 파라미터를 수신하고 상기 복수의 액세스 파라미터와 m의 값에 응답해서 상기 m 바이트 워드에서 적어도 하나의 유효 바이트를 판정하도록 동작하는 것인 시스템.
  13. 제12항에 있어서, 상기 메모리 컨트롤러는 상기 버스트 워드의 적어도 하나의 유효 바이트에 대응하는 적어도 하나의 유효 비트를 포함하는 인에이블 워드를 생성하기 위한 인에이블 워드 발생기를 포함하는 것인 시스템.
  14. 제12항에 있어서, 상기 메모리 컨트롤러는 메모리에 대한 클라이언트 요청을 수신하도록 동작하고, 상기 복수의 파라미터는,
    제1 어드레스와,
    메모리에 대한 상기 클라이언트 요청에서 바이트의 수를 지시하는 바이트 카운트 값을 포함하는 것인 시스템.
  15. 제14항에 있어서, 상기 메모리 컨트롤러는 상기 복수의 액세스 파라미터에 대한 후속 액세스용의 제2 어드레스를 판정하도록 동작하는 것인 시스템.
  16. 제15항에 있어서, 상기 클라이언트는 상기 제2 어드레스를 저장하도록 동작하는 것인 시스템.
  17. 제12항에 있어서, 상기 메모리 디바이스는 버스트 메모리 디바이스인 것인 시스템.
  18. 제12항에 있어서, 상기 메모리 컨트롤러는 상기 액세스가 클라이언트 요청을 만족시키는데 필요한 최종 액세스인지의 여부를 판정하도록 동작하는 것인 시스템.
  19. 제12항에 있어서, 상기 버스는 판독 버스와 기록 버스를 포함하는 것인 시스템.
  20. 머신 판독 가능한 매체에 수록된 명령어를 포함하고, 버스트 메모리로부터 액세스된 m 바이트 워드에서 유효 바이트를 판정하기 위한 장치에 있어서, 상기 명령어는 상기 머신으로 하여금,
    복수의 액세스 파라미터를 수신하고,
    상기 액세스 파라미터와 상기 m의 값으로부터 m 비트 인에이블 워드를 생성하게 하며, 상기 m 비트 인에이블 워드는 상기 m 바이트 워드에서 적어도 하나의 유효 바이트에 대응하는 적어도 하나의 유효 비트를 포함하는 것인 유효 바이트 판정 장치.
  21. 제20항에 있어서, 상기 액세스 파라미터는
    제1 어드레스와,
    메모리에 대한 클라이언트 요청에서 바이트의 수를 지시하는 바이트 카운트 값을 포함하는 것인 유효 바이트 판정 장치.
  22. 제21항에 있어서, 상기 m 비트 인에이블 워드를 생성하기 위한 명령어는 상기 머신으로 하여금,
    상기 제1 어드레스의 일부를 절단하여 n 비트 워드를 형성하게 하고,
    상기 n 비트 워드, 바이트 카운트 값 및 m의 값으로부터 인에이블 값을 생성하게 하고,
    상기 인에이블 값과 상기 m의 값으로부터 m 비트의 미리 시프트된 인에이블 워드를 생성하게 하고,
    상기 m 비트의 미리 시프트된 인에이블 워드에서 상기 n비트 워드 값만큼 비트를 시프트하게 하는 명령어를 포함하는 것인 유효 바이트 판정 장치.
  23. 제22항에 있어서, 상기 n의 값은 상기 m의 값에서 1을 뺀 수를 진수로 하는 밑이 2인 로그 값이며, 상기 n 비트 워드는 상기 제1 어드레스에서 최하위 비트와 위치 n에 있는 비트를 비롯해서 그 사이에 있는 복수의 비트를 포함하는 것인 유효 바이트 판정 장치.
  24. 제22항에 있어서, 상기 머신으로 하여금,
    상기 바이트 카운트 값과 상기 인에이블 값에 응답해서 메모리에 대한 액세스가 클라이언트 요청을 만족시키는 지의 여부를 판정하게 하는 명령어를 더 포함하는 유효 바이트 판정 장치.
  25. 제22항에 있어서, 상기 머신으로 하여금,
    상기 제1 어드레스와 상기 인에이블 값으로부터 메모리에 대한 후속 액세스용의 제2 어드레스를 생성하게 하는 명령어를 더 포함하는 유효 바이트 판정 장치.
  26. 제20항에 있어서, 상기 m의 값은 32인 것인 유효 바이트 판정 장치.
KR10-2003-7005033A 2000-10-12 2001-10-09 멀티 바이트 버스트 메모리에 적합한 유효 바이트 판정 방법 KR100523966B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/687,526 US6904505B1 (en) 2000-10-12 2000-10-12 Method for determining valid bytes for multiple-byte burst memories
US09/687,526 2000-10-12
PCT/US2001/031750 WO2002031659A1 (en) 2000-10-12 2001-10-09 Method for determining valid bytes for multiple-byte burst memories

Publications (2)

Publication Number Publication Date
KR20030042007A KR20030042007A (ko) 2003-05-27
KR100523966B1 true KR100523966B1 (ko) 2005-10-26

Family

ID=24760759

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2003-7005033A KR100523966B1 (ko) 2000-10-12 2001-10-09 멀티 바이트 버스트 메모리에 적합한 유효 바이트 판정 방법

Country Status (6)

Country Link
US (1) US6904505B1 (ko)
EP (1) EP1325416A4 (ko)
JP (1) JP3914154B2 (ko)
KR (1) KR100523966B1 (ko)
CA (1) CA2425660A1 (ko)
WO (1) WO2002031659A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8015470B2 (en) * 2007-07-18 2011-09-06 Freescale Semiconductor, Inc. Apparatus and method for decoding bursts of coded information

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4228496A (en) 1976-09-07 1980-10-14 Tandem Computers Incorporated Multiprocessor system
EP0453863A2 (en) 1990-04-27 1991-10-30 National Semiconductor Corporation Methods and apparatus for implementing a media access control/host system interface
US5452432A (en) 1990-08-14 1995-09-19 Chips And Technologies, Inc. Partially resettable, segmented DMA counter
US5604884A (en) 1993-03-22 1997-02-18 Compaq Computer Corporation Burst SRAMS for use with a high speed clock
US5630075A (en) * 1993-12-30 1997-05-13 Intel Corporation Write combining buffer for sequentially addressed partial line operations originating from a single instruction
EP0683457A1 (en) * 1994-05-20 1995-11-22 Advanced Micro Devices, Inc. A computer system including a snoop control circuit
JPH0877067A (ja) * 1994-09-01 1996-03-22 Nec Corp キャッシュメモリ制御装置
US5608892A (en) 1995-06-09 1997-03-04 Alantec Corporation Active cache for a microprocessor
US5832302A (en) 1996-07-01 1998-11-03 Sun Microsystems, Inc. Dual adder burst control governor to signal when a data burst is close to completion
US5983303A (en) 1997-05-27 1999-11-09 Fusion Micromedia Corporation Bus arrangements for interconnection of discrete and/or integrated modules in a digital system and associated method

Also Published As

Publication number Publication date
EP1325416A4 (en) 2005-08-10
JP3914154B2 (ja) 2007-05-16
EP1325416A1 (en) 2003-07-09
CA2425660A1 (en) 2002-04-18
KR20030042007A (ko) 2003-05-27
US6904505B1 (en) 2005-06-07
WO2002031659A1 (en) 2002-04-18
JP2004514965A (ja) 2004-05-20

Similar Documents

Publication Publication Date Title
US20200150872A1 (en) Method for Accessing Extended Memory, Device, and System
US6912616B2 (en) Mapping addresses to memory banks based on at least one mathematical relationship
US6192487B1 (en) Method and system for remapping physical memory
US11294675B2 (en) Writing prefetched data into intra-core caches of cores identified by prefetching instructions
US6170070B1 (en) Test method of cache memory of multiprocessor system
EP0407119A2 (en) Apparatus and method for reading, writing and refreshing memory with direct virtual or physical access
EP3964967A1 (en) Cache memory and method of using same
US8060226B2 (en) Method and signal processing device to provide one or more fractional delay lines
CN114051611A (zh) 用于非连续存储器的dma分散和聚集操作
EP0745940A1 (en) An apparatus and method for providing a cache indexing scheme less susceptible to cache collisions
KR100523966B1 (ko) 멀티 바이트 버스트 메모리에 적합한 유효 바이트 판정 방법
JP5341198B2 (ja) 通信インタフェースにおけるビット反転
JPH10143428A (ja) 省電力用のメモリ制御システムおよびメモリ制御回路
JP2004038705A (ja) メモリ制御装置およびメモリアクセス方法
JP4431492B2 (ja) 複数のコヒーレンシー・グラニュールをサポートするデータ転送ユニット
EP0943998B1 (en) Cache memory apparatus
CN117149447B (zh) 带宽调整方法、装置、设备及存储介质
KR100723475B1 (ko) 캐쉬 메모리 시스템과 버스의 버스 레이턴시 변화에 따라캐쉬 메모리의 라인 사이즈를 변경하는 방법
JP2004199608A (ja) メモリ制御回路
CN117724770A (zh) 一种参数读取方法、装置、设备及存储介质
CN111813722A (zh) 基于共享内存的数据读写方法,系统及可读存储介质
JPS59167891A (ja) 緩衝記憶装置
JP2004152292A (ja) 予測アドレス値を生成するための計算回路、および計算回路で次アドレスを予測する方法
JP3729832B2 (ja) キャッシュメモリ装置
JP2011150486A (ja) データ処理装置

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee