KR20070042207A - 버스트 판독기록 동작을 구비한 처리 장치 - Google Patents

버스트 판독기록 동작을 구비한 처리 장치 Download PDF

Info

Publication number
KR20070042207A
KR20070042207A KR1020077005952A KR20077005952A KR20070042207A KR 20070042207 A KR20070042207 A KR 20070042207A KR 1020077005952 A KR1020077005952 A KR 1020077005952A KR 20077005952 A KR20077005952 A KR 20077005952A KR 20070042207 A KR20070042207 A KR 20070042207A
Authority
KR
South Korea
Prior art keywords
burst
read
write
write operation
processing system
Prior art date
Application number
KR1020077005952A
Other languages
English (en)
Other versions
KR101121592B1 (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 KR20070042207A publication Critical patent/KR20070042207A/ko
Application granted granted Critical
Publication of KR101121592B1 publication Critical patent/KR101121592B1/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/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)
  • Memory System Of A Hierarchy Structure (AREA)
  • Logic Circuits (AREA)
  • Information Transfer Systems (AREA)
  • Communication Control (AREA)

Abstract

디지털 신호 처리 시스템은 프로그램 가능한 프로세서(PROC) 및 버스트 생성 디바이스(BG)를 거쳐 프로그램 가능한 프로세서에 연결되는 주변 디바이스(PD, MEM)를 포함한다. 프로세서는 단일 데이터 요소상, 판독 동작 및 기록 동작을 각각 사용하여 주변 디바이스와 통신하도록 배열된다. 버스트 생성 디바이스(BG)는 단일 버스트 기록 동작 또는 단일 버스트 판독 동작 각각으로, 복수의 판독 동작 또는 복수의 기록 동작을 그룹핑한다.

Description

버스트 판독기록 동작을 구비한 처리 장치{PROCESSING APPARATUS WITH BURST READ WRITE OPERATIONS}
디지털 신호 처리 시스템은 프로그램 가능한 프로세서 및 프로그램 가능한 프로세서에 결합된 주변 디바이스를 포함하며, 상기 프로세서는 단일 데이터 요소에서, 개별적으로, 판독 동작 및 기록 동작을 이용하여 주변 디바이스와 통신하도록 배열된다.
프로그램 가능한 프로세서의 계산력은, 증가하는 클럭 주파수에 의해 또는 다른 동작과 병행하여 대용량 워드 프로세서(Very Large Instruction Word processors) 또는 수퍼스칼라(superscalar) 프로세서와 같은 병렬 아키텍쳐를 사용함으로써, 동작이 고속으로 실행될 때 더욱 증가함에도 불구하고, 이들 프로세서에 기초한 시스템의 전반적인 성능은, 종종 입출력(I/O) 디바이스, 물리적인 메모리 또는 데이터 버스와 같은 주변 디바이스의 대역폭 제한에 의해 종종 방해받는다. 이러한 제한을 제거하기 위해, (다중레벨) 캐시(cache)가 프로세서에 대한 로컬 데이터를 가능한 많이 유지하도록 이들 시스템에 포함될 수 있으며, 이로 인해 미국 특허 6,574,707 B2에 공개된 바와 같이, 시스템의 더 먼 부분으로부터 데이터를 검색하기 위한 요구되는 데이터 대역폭이 감소된다. 더욱이, 예를 들어 버스 또는 메 모리 대역폭이 요구될 때마다, 예를 들면 캐시 미스 상에서 이 대역폭의 효율적 이용은, 단일 자동 동작으로 복수의 데이터 요소가 포함됨에 의해 소위 버스트 동작(burst operation)을 이용함으로써 이루어져 더 적은 제어 오버헤드(control overhead)를 요구한다. 통상적으로, 프로그램 가능한 프로세서는 단일 데이터 요소에서 실행되는 판독 동작 및 기록 동작을 통해 I/O 요청을 생성한다. 캐시가 프로세서에 인터페이스를 제공하기 때문에, 캐시를 사용함으로써, 이들 단일 데이터 요소 동작은 자동으로 버스트 동작으로 변환되고, 이에 의해 프로세서는 단일 요소 동작을 사용하여 제공받는 반면, 시스템의 다른 부분이 통상적으로 버스트 동작을 사용하여 액세스된다. 후자는 특히 판독 동작에 유효하며, 이러한 동작에서 캐시 미스인 경우, 캐시는 하나 또는 그 이상의 버스트 동작을 사용하여 시스템으로부터 요청되는 전체 캐시 라인을 가져온다. 캐시가 존재하는 경우 프로세서 기록은 버스트 행동 또는 사용된 캐시 기록 정책에 의존하는 단일 요소 액세스를 유발할 수 있다. "경유-기록(write-through)"정책을 사용하는 캐시가 시스템에 단일 데이터 요소를 기록하는 반면, 소위 "후면-기록(write-back)" 정책을 사용하는 캐시는 버스트 모드에서 시스템에 완전한 캐시 블록을 압도적으로 기록할 것이다. 캐시에서 기록이 히트하는(hit) 한, 캐시에 있는 데이터만이 갱신될 것이다. 그러한 기록 히트(즉, "오염"됨) 때문에 변경된 캐시 블록은 동일한 캐시 위치에 저장될 새롭게 가져온 블록을 위한 공간을 만들기 위해 캐시로부터 방출되어야 할 때만, 오염된 블록이 시스템에 다시 기록될 것이다. 기록 미스의 경우, 캐시는 데이터의 빠진 블록을 가져와서 꺼내진 블록을 순차적으로 캐시에 기록하거나("기록 할당" 정책을 구비한 "후면 기록", 혹은 캐시를 우회(bypass)하여 직접 시스템에 단일 데이터 요소를 기록할 것이다("기록 비할당" 정책을 구비한 "역 기록").
특히 비용에 민감한 및 저전력 어플리케이션의 경우에, 캐시 사용은 공간 및 전력 소모 오버헤드라는 관점에서 주요 결점을 가진다. 게다가, 실시간 시스템에 대해, 캐시의 동적인 행동은, 보증된 실시간 성능의 예측을 어렵게 만든다. 데이터 스트림을 처리하는 신호 처리 어플리케이션에 대해 종래의 캐시는 대부분 데이터 항목이 자주 판독되고 한번 기록되므로 성능 이점을 거의 가지고 있지 않고, 어떠한 임시 데이터 국부성(locality)도 사용될 수 없다. 이러한 이유들로 인해, 내장형 시스템은 비교적 단순한 캐시만을 사용할 수 있거나, 어떠한 캐시도 전혀 사용할 수 없다. 비교적 단순한 캐시는 비-기록-할당 기록 정책(no-write-allocate write policy)을 가지고 경유-기록을 사용하는데, 즉, 데이터가 캐시 내에 존재하는 메모리 어드레스에 기록되는 경우, 데이터는 캐시 및 메모리 양쪽에 기록되는 반면, 캐시에 존재하지 않는 메모리에 데이터가 기록되는 경우, 메모리로부터 캐시까지 이들을 검색하지 않고 데이터는 메모리에 기록만 된다. 그러한 내장 시스템에서 배선 가속기(hardwired accelerator)는 버스트 방식으로 시스템 I/O를 수행하도록 종종 설계된다. 가속기는 특정 어플리케이션으로 조정되므로, 이러한 종류의 행동이 확정되도록 적용된 시스템 환경에 가속기를 조정하는 것이 보통 실현 가능하다. 좀더 플렉시블한 시스템-온-칩(systems-on-chip)에 대한 요구는 프로그램 가능한 가속기가 점점 증가하여 사용되는 환경을 유도한다. 그러한 프로그램 가능한 프로세서는, 이들 프로세서가 단일 데이터 요소에서 동작하는 판독 및 기록 동작을 이용하여 시스템과 통신하는 로딩/저장(load/store) 아키텍처에 종종 기초하는데, 즉, 각 판독/기록 동작이 소프트웨어 프로그램 제어하에서, 단일 데이터 요소가 기록되어야 하는 어드레스에서 또는 프로세서 데이터 경로 폭(즉, 32비트 워드)에 매칭하는 단일 데이터 요소가 판독되어야 하는 단일 어드레스로 구성된다. 비록 프로그래머가 스트리밍 방식으로 시스템 데이터를 액세스하는 (단일 처리)어플리케이션을 맵핑할 수 있지만, 프로세서가 시스템 데이터에 액세스하는 방법을 프로그래머가 제어할 방법이 없다. 캐시가 시스템 내 존재하지 않는다면, 단일 데이터 요소 동작은 시스템 버스 또는 메모리로 바로 가서, 예를 들면, 각 개별 데이터 항목에 대한 새로운 전달 설정의 오버헤드로 인해 사용가능한 대역폭의 비효율적 사용을 초래한다. 이는 열악한 버스/ 메모리 대역폭 사용을 초래할 것이며, 전체 시스템 성능에 심각하게 영향을 줄 수 있다.
본 발명의 목적은 캐시를 가지지 않거나, 비교적 단순한 캐시만을 가지는, 효율적, 저비용 및 저전력의 프로그램 가능한 시스템을 제공하는 것이다.
이 목적은 앞으로 설정될 종류의 프로세서에 의해 구현되며, 이러한 프로세서는 각각 단일 버스트 판독 동작 또는 단일 버스트 기록 동작으로 복수의 판독 동작 또는 복수의 기록 동작을 그룹핑하도록 배열된 버스트 생성 디바이스에 의해 특징으로 한다.단일 데이터 요소에서 판독 및 기록 동작을 단일 버스트 판독 및 기록 동작으로 변환함으로써, 주변 디바이스에 대해 사용가능한 대역폭은 더 효과적으로 사용되며, 처리 시스템의 전제척인 성능이 향상된다. 버스트 동작을 생성하기 위해 캐시가 요청되지 않으나, 대신 전용 회로가 사용되어 캐시를 가지는 프로그램 가능한 처리 시스템에 비교하여, 저비용 및 저전력 해법을 허용한다.
본 발명의 실시예는 프로그램 가능한 프로세서가 버스트 판독 동작 또는 버스트 기록 동작을 각각 사용하여 주변 디바이스와 통신하도록 추가적으로 배열되는 것을 특징으로 하며, 여기서 버스트 생성 디바이스는 버스트 판독 동작 및 추가적인 버스트 판독 동작 또는 적어도 하나의 판독 동작을 단일 버스트 판독 동작으로 그룹핑하도록, 및 버스트 기록 동작 및 추가적인 버스트 기록 동작 또는 적어도 하나의 기록 동작을 단일 버스트 기록 동작으로 그룹핑하도록 개별적으로 배열된다. 프로그램 가능한 프로세서에 의해 생성된 버스트 동작은, 주변장치의 사용가능한 대역폭의 보다 효율적인 사용을 허용하는, 단일 버스트 동작을 형성하기 위해, 단일 데이터 요소 상에 하나 이상의 동작 또는 대안적으로 하나 이상의 다른 버스트 동작과 조합될 수 있다.
본 발명의 실시예는 만약 각각의 버스트 판독 동작 또는 버스트 기록 동작이 단일 버스트 판독 동작 또는 단일 버스트 기록동작 각각의 원하는 크기보다 더 큰 크기를 가지는 경우, 버스트 생성 디바이스가 상기 버스트 판독 동작 또는 버스트 기록 동작을 각각 두 개 이상의 버스트 동작으로 나누도록 추가적으로 구성되는 점을 특징으로 한다. 버스트 동작이 단일 버스트 동작의 원하는 크기보다 더 큰 경우, 버스트 동작은 두 개 이상의 버스트 동작으로 나뉘어진다. 후자의 크기는 단일 버스트 동작의 원하는 크기와 같거나 더 작을 수 있고, 후자의 경우 결과적인 버스트 동작은 추가적인 버스트 동작 또는 적어도 하나의 단일 데이터 요소 동작과 조합되어 단일 버스트 동작일 수 있다.
본 발명의 실시예는 프로그램 가능한 프로세서가 버스트 생성 디바이스에 대해 제어 정보를 저장하기 위해 배열된 적어도 하나의 구성 레지스터를 포함한다. 프로세서 내에 있는 구성 레지스터는 다른 방식으로 행동하도록 버스트 생성 디바이스를 제어하기 위해 프로그래밍될 수 있다. 이들 구성 레지스터는 처리 시스템으로부터 또는 프로그램 가능한 프로세서 자체 내에서부터 프로그램될 수 있다.
본 발명의 실시예는 구성 레지스터가 단일 버스트 판독 동작 또는 단일 버스트 기록 동작 각각의 원하는 크기를 저장하도록 배열된다는 점을 특징으로 한다. 단일 버스트 동작의 크기를 선택함으로써, 한편으로 동작의 횟수 감소와 다른 한편으로 실행시 너무 긴 지연을 회피하는 것 사이에서, 최적화는 처리 시스템의 특성 뿐만 아니라 어플리케이션의 특성에 의존하여, 발견된다.
본 발명의 실시예는 구성 레지스터가 두 개의 연이은 단일 버스트 동작 사이에서 최대 시간 간격을 제어하기 위해 사용되는, 타임 아웃(time out)값을 저장하도록 추가적으로 배열된다는 점을 특징으로 한다. 단일 버스트 동작은, 버스트 생성 디바이스에 의해 수신된 단일 데이터 요소상 연속된 동작 사이에서 시간 간격이 타임 아웃 값보다 큰 경우, 미리 릴리즈(release)되어, 이에 의해 동작을 수행할 때 너무 긴 지연을 회피한다.
본 발명의 실시예는 버스트 생성 디바이스가: 프로그램 가능한 프로세서로부터 판독 및 기록 동작을 수신하고, 판독 및 기록 동작으로부터 유도된 정보에 기초하여, 단일 버스트 판독 동작 또는 단일 버스트 기록 동작의 릴리즈를 각각 트리거링하는 전용 토큰을 생성하도록 배열된 콜렉터 회로(collector circuit); 전용 토큰을 저장하기 위한 제 1 FIFO 버퍼; 판독 및 기록 동작 각각으로부터 유도된 정보를 저장하기 위한 제 2 FIFO 버퍼; 제 1 FIFO 버퍼로부터 수신된 전용 토큰의 제어하에, 제 2 FIFO 버퍼로부터, 단일 버스트 기록 동작 또는 단일 버스트 판독 동작 각각의 릴리즈를 초기화하도록 배열된 릴리즈 회로를 포함한다는 점을 특징으로 한다. 이러한 버스트 생성 디바이스의 실시예는 단지 두 개의 비교적 단순한 회로 및 두 개의 FIFO 버퍼만을 요구하여, 저비용 및 저전력 해법을 제공한다.
본 발명의 실시예는 버스트 생성 디바이스가, 만약 단일 버스트 동작이 단일 버스트 동작의 원하는 크기와 동일하지 않은 크기를 가지는 경우, 단일 버스트 판독 동작 또는 단일 버스트 기록 동작의 릴리즈를 각각 트리거하도록 추가적으로 배열되는 점을 특징으로 한다. 특정 조건하에서, 전체적인 시스템 성능을 개선하기 위해 원하는 크기를 가지지 않는다 할지라도 단일 버스트 동작을 릴리즈하는 것이 유리할 수 있다.
본 발명의 실시예는 복수의 판독 동작 또는 복수의 기록 동작이 단일 데이터 요소의 크기에 해당하는 단계의 크기로서 오름차순으로 정렬된 복수의 해당 메모리 어드레스를 참조하느냐의 여부에 의존한다는 점을 특징으로 한다. 사용되는 통신 또는 주변 디바이스에 의존하여, 상이한 어드레싱 구조가 지원될 수 있고 이는 버스트 생성기에 의한 버스트 릴리즈에 대한 규칙에 영향을 미친다. 가장 간단한 것은 하나의 데이터 요소 어드레스가 떨어진, 오름차순인 어드레스에 의해 지원되는 버스트 액세스이다. 대안적인 구조는 랩-어라운드 어드레싱(wrap-around addressing)을 허용할 것이다. 이것은 예를 들어 중요한-워드-우선 캐시 인출을 지원하는 버스를 구비하는 경우이다. 이 경우, 어드레스 0,4,8,12 에서 데이터의 시퀀스를 요청한다기 보다, 캐시는 대신, 어드레스 8 에서 데이터 요소가 캐시를 사용하는 프로세서에 의해 처음 요구되는 것이라면, 어드레스 8,12,0,4 에서 데이터 시퀀스를 요청할 수 있다. 다른 버스 또는 메모리 프로토콜은 다차원 버스 액세스를 허용할 수 있는데, 이 경우 버스트는 메모리 맵에서 다차원 공간을 형성하는 어드레스에서 데이터 요소로 구성될 수 있다. 이것의 예는, 보통 그래픽 및 비디오 처리 어플리케이션에서 사용되는 2D 데이터 블록의 효율적인 판독 또는 기록을 지원하도록 2D 버스트 액세스를 지원하는 버스이다.
본 발명의 실시예는 단일 버스트 동작의 릴리즈가, 버스트 생성 디바이스에 의해 개별적으로 수신된, 다음 버스트 기록 또는 판독 동작이 단일 버스트 동작의 원하는 크기와 동일한 크기를 가지는지의 여부에 의존한다는 점을 특징으로 한다. 프로그램 가능한 프로세서가 이미 원하는 크기인 버스트 동작을 발행하는 경우, 그 때 버스트 생성 디바이스에 의해 그룹핑된 단일 버스트 동작은 , 그것이 프로세서에 의해 발행된 상기 버스트 동작의 분열을 회피하기 위해, 원하는 크기를 가지고 있지 않다고 하더라도, 릴리즈된다.
본 발명의 실시예는 단일 버스트 동작의 릴리즈가 프로그램 가능한 프로세서로부터의 플러쉬 명령(flush command)의 수신에 의존한다는 점을 특징으로 한다. 이 실시예는, 예컨대 모든 데이터가 결국 처리의 종료시점에서 주변 디바이스에 기록되는 것을 확실히 하기 위해, 프로그램 가능한 프로세서의 제어하에 단일 버스트 동작을 릴리즈하게 한다.
본 발명의 실시예는 (버스트) 판독 또는 기록 동작이 각각 다음 정보: (버스트) 판독 또는 기록 동작의 유효성을 각각 나타내는 식별자(identifier); (버스트) 판독 동작 또는 (버스트) 기록 동작을 각각 나타내는 식별자; (버스트) 판독 또는 (버스트) 기록 동작이 각각 참조하는 메모리 어드레스;(버스트) 기록 동작의 경우, 메모리에 기록되는 데이터; (버스트) 판독 또는 (버스트) 기록 동작의 시작을 각각 나타내는 식별자; (버스트)판독 또는 (버스트) 기록 동작의 크기를 각각 나타내는 식별자를 포함하도록 배열된다는 점을 특징으로 한다.
프로그램 가능한 프로세서에 의해 발행되는 (버스트) 동작에서 인코딩된 정보를 이용하여, 버스트 생성 디바이스는 동작의 타입, 즉 판독 또는 기록 동작 및 단일 요소 동작 또는 버스트 동작을 인지하고, (버스트) 동작을 단일 버스트 동작으로 그룹핑하는데 이 정보를 이용한다.
본 발명의 실시예는 (버스트) 판독 또는 기록 동작이 각각 다음 정보: 비트수, 즉, (버스트) 동작이 참조하는 단일 데이터 요소의 데이터 타입(예. 바이트, 하프 워드(half word), 워드)을 나타내는 식별자; (버스트) 기록 동작의 경우 데이터가 기록되어야 하는 단일 데이터 요소에서 비트 위치를 나타내는 마스크 식별자를 더 포함한다는 점을 특징으로 한다. 이 추가적인 정보를 이용하여, 데이터는 데이터 요소내 특정 비트 위치로부터 판독되거나 특정 비트 위치에 기록될 수 있다.
본 발명의 실시예는 주변 디바이스가 물리적인 메모리라는 점을 특징으로 한다. 본 발명의 실시예는 주변 디바이스가 통신 디바이스라는 점을 특징으로 한다. 시스템 버스와 같은 통신 디바이스 및 물리적인 메모리 둘 다,(버스트) 판독 및 기록 동작을 이용하여 종종 액세스되는 처리 시스템에서 주변 디바이스이며, 이로 인해 이들 디바이스에 대해 본 발명이 특히 유리하게 된다.
도 1은 본 발명에 따른 처리 시스템의 개략도.
도 2는 버스트 생성 디바이스의 실시예의 개략도.
도 3은 도 2에 따른 버스트 생성 디바이스의 동작 동안 입력 신호 및 출력 신호를 도시하는 타이밍도.
도 1은 프로그램 가능한 프로세서(PROC), 버스트 생성기(BG) 시스템 버스(SB) 메모리(MEM) 및 주변 디바이스(PD)를 포함하는 처리 시스템의 개략도이다. 메모리 (MEM)는 예를 들어 동기 다이나믹 랜덤 액세스 메모리(SDRAM)이다. 주변 디바이스(PD)는 예를 들어 디스플레이 또는 네트워크 연결이다. 메모리(MEM) 및주변 디바이스(PD)는 시스템 버스(SB)에 결합된다. 시스템 버스(SB)는 분리된 어드레스 버스 및 분리된 데이터 버스 또는 대안적으로 조합된 어드레스 및 데이터 버스를 포함할 수 있다. 데이터 버스는 예를 들어 32비트폭 데이터 버스이다. 프로세서(PROC)는 예를 들어, 통상적으로 실행될 동작의 타입에 대한 동작 코드, 인수 데이터(argument data)를 검색하기 위한 위치를 명기하는 하나 또는 두 개의 레지스터 인덱스, 및 결과 데이터를 기록하기 위한 위치를 명기하는 레지스터 인덱스를 포함하는, 동작의 RISC 타입을 실행하는 RISC 프로세서이다. 판독 및 기록 동작은 특정 동작이며, 즉 판독 동작의 인수는 메모리 어드레스인 반면 기록 동작의 인수는 메모리 어드레스 및 저장될 데이터이며, 이는 메모리 인터페이스로 전송된다. 판독 동작의 결과는 판독될 데이터이다. 대안적으로, 처리 시스템은 스트리밍 방식으로 데이터를 처리하기 위한 하나 이상의 프로그램 가능한 프로세서를 포함할 수 있고, 여기서 데이터에 대한 연속적인 동작은 상이한 프로세서에 의해 실행된다. 상기 프로세서(PROC)의 I/O 포트는 연결(101 및 103)을 거쳐 버스트 생성기(BG)의 입력 포트에 연결된다. 버스트 생성기(BG)의 출력 포트는 연결(109)을 거쳐 시스템 버스(SB)로 연결될 수 있다. 메모리(MEM) 또는 주변 디바이스(PD)로부터 판독된 데이터는 시스템 버스(SB) 및 연결(105)를 거쳐 프로세서(PROC)에 전달된다. 프로세서(PROC)는 연결(107)을 거쳐 원하는 방식으로 행동하도록 버스트 생성기(BG)를 제어하도록 프로그래밍될 수 있는 구성 레지스터(CR)를 가진다. 동작시, 프로세서(PROC)는 메모리 맵핑된 I/O 어드레스를 거쳐 단일 데이터 요소를 판독 또는 기록하기 위해, 판독 동작 및 기록 동작을 사용하여 처리 시스템의 다른 부분과 통신한다. 소프트에어 프로그램의 제어하에, 프로세서(PROC)는 판독 동작을 수행하고 판독 데이터를 처리하고, 기록 동작을 수행한다. 대안적으로, 프로세서(PROC)는 예를 들어 캐시가 존재하는 경우, 버스트 판독 동작 또는 버스트 기록 동작을 사용하는 처리 시스템의 다른 부분과 통신한다.
도 2는 콜렉터(COL), 선입선출(First-In-First-Out) 버퍼(BUF1), 우선 입력 선입선출(BUF2) 및 릴리저(Releaser)를 포함하는 버스트 생성기(BG)의 개략도이다. 버퍼(BUF1 및 BUF2) 둘 다 블로킹 타입이고 콜렉터(COL)가 가득찬(full) 버퍼(BUF1 및BUF2)에서 정보 기록을 시도하는 것을 지연할 것이고, 릴리저(REL)는 빈(empty) 버퍼(BUF1 및 BUF2)로부터 정보 판독을 시도하는 것을 지연할 것을 의미한다. 동작시, 콜렉터(COL)는 신호 수신의 형태로 프로세서(PROC)로부터 판독 및 기록 동작을 수신한다:
- 유효한 신호는 동작의 유효성을 나타내며, 거짓과 동일할 때 NOP 동작을 나타내며, 그렇지 않은 경우 참과 같다.
- 기록 인에이블 신호(we)는, 참일 때, 기록 동작을 참조하는 동작을 나타내며, 거짓일 때, 판독 동작을 참조하는 동작을 나타낸다.
- 어드레스 신호(addr)는 동작이 참조하는 메모리 맵핑된 I/O 어드레스를 나타낸다.
- 기록 데이터 신호(wdata)는 기록 동작의 경우 기록될 데이터를 유지한다.
- 참일 때, 개시 신호는 (버스트) 판독 및 기록 동작의 시작을 나타낸다.
- 크기 신호는 (버스트) 판독 및 기록 동작 - 1 크기, 즉 신호동작에 관련된 단일 데이터 요소의 개수 - 1을 참조한다.
아래에 논의될 것과 같이, 콜렉터(COL)는, 적절하다면, 프로세서(PROC)로부터 들어오는 (버스트) 판독 또는 기록 동작을 단일 버스트 판독 또는 기록 동작으로 수집한다. 신호의 수집 형태로 콜렉터(COL)에 의해 수신된 정보는 버퍼(BUF2)에서 콜렉터(COL)에 의해 기록된다. 게다가 콜렉터(COL)는, 단일 버스트 판독 또는 기록 동작에서 (버스트) 판독 또는 기록 동작이 버퍼(BUF2)로부터 릴리즈되어야 한다는 점을 나타내는 릴리즈 토큰을 버퍼(BUF1)로부터 기록한다. 프로그램 가능한 프로세서(PROC)가 단일 데이터 요소상 판독 및 기록 동작을 지원만 하는 경우, 이것은 그러한 동작이 발행될 때 개시 신호가 참이며, 크기 신호가 영과 같다는, 즉 1의 버스트 사이즈를 나타냄을 의미한다. 대안적으로, 프로세서(PROC)가 또한 버스트 판독 및 기록 동작을 지원하는 경우, 크기 신호는 버스트 크기가 1보다 크며 개시 신호는 그러한 버스트 동작의 시작점에서 오직 참임을 나타낼 수 있다.
도 3은 도 2에서 도시된 버스트 생성기(BG)의 동작 동안 입력 신호 및 출력 신호를 도시하는 타이밍도이다. 버스트 생성기(BG)는 4의 크기를 가지는 즉, 4개의 단일 데이터 요소를 수반하는 단일 버스트 판독 및 기록 동작을 만들도록 구성 레지스터(CR)를 거쳐 구성된다. 32비트 데이터 요소는 메모리(MEM) 또는 주변 디바이스(PD)에 기록되고, 메모리(MEM) 및 주변 디바이스(PD)의 메모리 어드레스는 바이트 어드레스 즉, 어드레스 4,8,12 등으로서 나타난다. 클럭 신호(clock)는 도 1에 미도시된, 처리 시스템의 클럭에 의해 생성된 신호를 표현한다. 도 3의 상단에서, 버스트 생성기(BG)의 입력(101)에서 신호가 도시되며, 도 3의 하단부에서, 버스트 생성기(BG)의 출력 (109)에서 신호가 도시된다. 도 3을 참조하여, 버스트 생성기(BG)는 먼저 프로세서 (PROC)로부터의 버스트 기록 동작을 수신하며, 이는 크기 신호가 "1"의 값을 가지는, 즉, 버스트 기록 동작이 두 개의 데이터 요소의 버스트 사이즈를 가지는 반면, 유효 신호(valid), 기록 인에이블 신호(we) 및 버스트 개시 신호(start)가 하이(high) 상태이기 때문이다. 데이터 요소는 어드레스 신호(addr)에 의해 나타나는 바와 같이 ,어드레스 "4" 및 "8"로 맵핑된 메모리에 기록되어야 한다. 다음, 버스트 생성기(BG)는, "0"의 값을 가지는 크기 신호, 두 클럭 신호 기 간동안 하이 상태인 개시 신호 및 역시 하이 상태인 신호(valid 및 we)에 의해 나타나는 바와 같이, 메모리 어드레스 "12" 및 "16"에 대한 두 개의 단일 데이터 요소 기록 동작을 수집한다. 메모리 어드레스 "16"에 대한 기록 동작 수신시, 콜렉터(COL)는 크기 4의 단일 버스트 기록 동작을 수집하고, 릴리즈 토큰 버퍼(BUF1)에서 "3"의 값을 가지는 토큰을 놓는다. 상기 토큰은 콜렉터가 릴리즈되기로 한 마이너스 1 단일 버스트 기록 동작에서 수집되는 기록 동작의 수 - 1를 나타내는 값이다. 301에 의해 참조된 클럭 신호에서, 제 1 단일 버스트 기록 동작이 릴리즈되도록 계획된다. 릴리저(REL)는 "3"의 값을 가지는 토큰을 수신하고, 릴리즈될 기록 동작의 수를 추적하기 위해 이를 유지하는 카운터를 초기화하기 위해 이 토큰 값을 사용한다. 이어서, 릴리저(REL)는, "3"의 크기 신호(size) 및 릴리저(REL)의 출력포트에서의 어드레스 신호(addr)에 의해 나타나는 바와 같이, 버퍼(BUF2)로부터 해당하는 4개의 기록 동작을 검색하고,4개의 기록 동작의 단일 버스트 기록 동작을 수립하며, 단일 버스트 기록 동작을 출력(109)및 시스템 버스(SB)를 거쳐 어드레스 "4","8","12" 및 "16"으로 맵핑된 메모리로 전송한다. 제 1 단일 버스트 기록 동작을 만든 후, 제 2 단일 버스트 기록 동작이 만들어진다. 콜렉터(COL)는 "1"과 동일한 크기 신호(size),"20"및 "24"인 어드레스 신호(addr), 하이 상태인 유효(valid) , 개시(start) 및 기록 인에이블(we) 신호에 의해 나타나는 바와 같이, 어드레스 "20" 및 "24"로 맵핑된 메모리에서 두개의 데이터 요소에 대한 버스트 기록 동작을 수신한다. 다음, 콜렉터(COL)는 메모리 어드레스"32"에 대한 기록동작을 수신한다. 어드레스 "32"로 맵핑된 메모리에 대한 기록 동작을 수신한 순간에 크기 4 인 원하는 버스트 동작이 도달되지 않았다 하더라도, 그때까지 만들어진 제 2 단일 버스트 기록 동작은 이미 릴리즈되었고, 이는 마지막으로 수신된 기록 동작의 어드레스로 맵핑된 메모리가 이전의 기록 동작의 메모리 어드레스로부터 적절한 거리만큼 떨어져 있지 않기 때문인데, 즉 "32"로 어드레스 맵핑된 메모리는 메모리 어드레스"24"로부터 적절한 거리(즉, "28"로 어드레스 맵핑된 메모리)가 아니고, 이는 그때까지 이미 조합된 단일 버스트 기록 동작이 "20" 및 "24"로 각각 어드레스 맵핑된 메모리에서 기록동작을 포함하기 때문이다. 콜렉터(COL)는 릴리즈 토큰 버퍼(BUF1)에서 "1"의 값을 가진 토큰을 둔다. 303에 의해 참조되는 클럭 신호에서, 제 2 버스트 기록 동작은 릴리즈 하기 위해 계획된다. 릴리저(REL)는, "1"의 값을 가진 토큰을 수신하고, 릴리즈될 기록 동작 개수를 추적하기 위해 이를 유지하는 카운터를 초기화 하도록 이 토큰 값을 사용한다. 이어서, 릴리저(REL)는, "1"의 크기 신호(size) 및 릴리저(REL)의 출력 포트에서 어드레스 신호(addr)에 의해 나타나는 바와 같이, 버퍼(BUF2)로부터 해당되는 두 개의 기록 동작을 검색하고, 두 개의 기록 동작의 단일 버스트 기록 동작을 수립하고 출력(109) 및 시스템 버스(SB)를 거쳐 어드레스 "20" 및 "24"로 맵핑된 메모리로 단일 버스트 기록 동작을 보낸다. 메모리 어드레스 "32"에 대한 기록 동작은 제 3 단일 버스트 기록 동작에 대한 제 1 동작을 형성한다. 제 3 단일 버스트 기록 동작은 클럭 신호(305)에서 미리 릴리즈 되도록 계획되며, 이는 단일 데이터 요소 판독 동작이 메모리 어드레스 "36"에 대해 수신되며, 기록 및 판독 동작이 단일 버스트 동작으로 조합되지 않기 때문이다. 메모리 어드레스 "36"에 대한 판독 동작은, 로우(low) 상태인 신호(we), 하 이 상태인 유효신호 및 개시 신호(valid, start), 영(zero)인 크기 신호(size) 및 "36"인 어드레스 신호(addr)에 의해 나타난다. 콜렉터(COL)는 릴리즈 토큰 버퍼(BUF1)에서 "0" 값을 가진 토큰을 둔다. 릴리저(REL)는, 릴리즈될 기록 동작의 수를 추적하기 위해 유지하는 카운터를 초기화하는 값으로서 이 토큰을 수신하고 이를 이용한다. 이어서 릴리저(REL)는, 릴리저(REL)의 출력 포트에서 "0"의 크기 신호(size) 및 어드레스 신호(addr)에 의해 나타나는 바와 같이, 버퍼(BUF2)로부터 해당하는 기록 동작을 검색하고, 하나의 기록 동작의 단일 버스트 기록 동작을 구성하고, 제 3 단일 버스트 기록 동작을 출력(109) 및 시스템 버스(SB)를 거쳐 메모리 어드레스 "32"에 전송한다. 제 1 단일 버스트 판독 동작은 클럭 신호(307)에서 미리 릴리즈되도록 계획되며, 이는 콜렉터(COL)에 의해 수신된 다음 버스트 판독 동작이, 콜렉터(COL)의 입력 포트(101)에서 "3"의 크기 신호(size) 및 어드레스 신호(addr) 40,44,48, 및 52 에 의해 나타나는 바와 같이, 이미 "4"의 원하는 크기이기 때문이다. 콜렉터(COL)는 "0" 값을 가지는 토큰을 릴리즈 토큰 버퍼(BUF1)에 놓는다. 릴리저(REL)는 버퍼(BUF1)로부터 이 토큰을 검색하고, 버퍼(BUF2)로부터 검색된 판독 동작의 단일 버스트 판독 동작을 수립한다. 상기 단일 버스트 판독 동작은, "0"인 크기 신호(size) 및 릴리저(REL)의 출력 포트(109)에서 어드레스 신호(addr) "36" 에 의해 나타나는 바와 같이, 릴리저(REL)에 의해 릴리즈된다. 제 2 단일 버스트 판독 동작은 마지막 수신된 버스트 판독 동작으로 구성된다. "3" 값을 가진 토큰은 릴리즈 토큰 버퍼(BUF1)에 의해 놓여지고, 릴리저(REL)는 버퍼(BUF2)로부터 유도된 정보로부터 제 2 단일 버스트 판독 동작을 구성한다. 릴리저(REL)의 출력포트에서 "3"인 크기 신호(size)및 "40","44","48" 및 "52"인 어드레스 신호는 제 2 버스트 판독 동작의 릴리즈를 가리킨다.
대안적인 실시예에서, 처리 시스템은, 프로그램 가능한 프로세서(PROC) 및 버스트 생성기(BG) 사이에 위치하여, 비-기록 할당 기록 정책을 구비한 경유-기록을 이용하는 비교적 간단한 캐시를 더 포함한다. 판독 동작의 경우 캐시는 단일 데이터 요소 판독 동작을 버스트 판독 동작으로 변환시킨다. 기록 동작에 대해, 버스트 생성기(BG)는 프로그램 가능한 프로세서(PROC)로부터 수신된 (버스트) 기록 동작으로부터 단일 버스트 기록 동작을 만든다. 버스트 판독 동작의 경우, 버스트 생성기(BG)에 의해 수신된 개시 신호(start)는 그러한 버스트 판독 동작의 시작에서 오직 참이며, 크기 신호(size)는 통상적으로 캐시 블록의 크기 - 1과 동일한, 즉 캐시 블록 크기와 동일한 버스트 사이즈를 나타내는 값을 유지할 것이다. 단일 데이터 요소 기록 동작의 경우, 개시 신호(start)는 참과 같으며, 크기 신호는 버스트 크기 1 을 가리키는, "0" 값을 운반한다.
추가적인 대안 실시예에서, 버스트 생성기(BG)는 연결(103)을 거쳐 프로그램 가능한 프로세서(PROC)로부터 플러시 입력 신호를 수신하도록 배열된다. 플러시 신호가 하이일때, 현재 구성된 단일 버스트 동작은, 적합한 크기를 가지지 않는다 할지라도, 콜렉터(COL)에 의해 릴리즈 되도록 계획된다. 이 방법으로, 동작은 버퍼(BUF2)에서, 예를 들어, 단일 버스트 동작을 완성하기에 충분하지 않은 요소들이 사용가능할 때 이 처리의 종료시점에서, 영원히 남아 있지 않을 것이다.
또 다른 추가적인 대안 실시예에서, 콜렉터는 연속적인 입력 (버스트) 판독 및 기록 동작 사이에 클록 주기의 개수를 카운트하는 타이머를 포함한다. 만약 카운터가 특정 구성가능한 값을 초과한다면, 현재 구성된 단일 버스트 입력은, 적합한 크기를 가지고 있지 않더라도, 콜렉터(COL)에 의해 릴리즈되도록 계획된다. 이 방법으로, 릴리즈 되기 전 버스트 생성기에서 동작이 너무 길게 유지되지 않을 것임이 확인되며, 이는 전체적인 시스템 성능에 영향을 미칠 수 있는 긴 잠복기를 가져올 것이다. 구성 가능한 타임 아웃 값은 구성 레지스터(CR)을 거쳐 설정될 수 있다.
또다른 추가적인 대안 실시예에서, 콜렉터(COL) 프로그램 가능한 프로세서(PROC)로부터 데이터 크기 신호(dsize) 및 기록 마스크 신호(wmask)를 더 수신하고, 이는 동작이 참조하는 데이터 요소의 정확한 비트수를 나타내는데 사용될 수 있다. wmask 신호는 데이터 저장을 위해 데이터 요소에서의 특정 비트 위치를 나타낸다. dsize 및 wmask 신호는 예를 들어 32-비트 데이터 요소의 특정 바이트와 같은 단일 데이터 요소의 일부분만을 기록하고 판독하게 한다.
또다른 추가적인 대안 실시예에서, 상이한 어드레싱 구조는 랩-어라운드 어드레싱(wrap-around addressing)을 허용한다. 이것은 중요한-워드-우선 캐시 호출을 지원하는 버스를 가진 경우의 예이다. 이 경우, 어드레스(0,4,8,12)에서 데이터 시퀀스를 요청한다기 보다는, 어드레스(8)에서 데이터 요소가 캐시를 사용하는 프로세서에 의해 처음 요구되는 것일 경우, 대신, 어드레스(8,12,0,4)에서 데이터 시퀀스를 요청할 수 있다. 다른 버스 또는 메모리 프로토콜은 다차원 버스트 액세스를 허용할 수 있는데, 이 경우 버스트는 메모리 맵에서 다차원 공간을 형성하는 어 드레스에서 데이터 요소로 구성될 수 있다. 이것의 예는, 통상적으로 그래픽 및 비디오 처리 어플리케이션에 사용되는 2D 데이터 블록의 충분한 판독 및 기록을 지원하기 위해 2D 버스트 액세스를 지원하는 버스이다.
앞서 언급된 실시예는 본 발명을 제한한다기 보다 설명하는 것임이 주목되어야 하며, 당업자가 첨부된 청구항의 범주를 벗어남 없이 많은 대안적인 실시예를 설계할 수 있다는 점이 주목되어야 한다. 청구항에서, 괄호 안에 위치한 임의의 참조 부호는 청구항을 제한하는 것으로 해석되지 않아야 한다. "포함하다"라는 단어는 청구항에 기술된 요소 또는 단계 이외의 존재를 배제하지 않는다. 단수로 쓰여진 요소는 해당 요소가 복수라는 것을 배제하지 않는다. 여러 수단을 열거하는 디바이스 청구항에서 이들 여러 수단들은 하나의 동일한 하드웨어 항목에 의해 구현될 수 있다. 일정 수단이 상호 다른 종속 청구항에 열거된다는 단순한 사실은 이들 수단의 조합이 유용하게 쓰일 수 없다는 점을 나타내는 것은 아니다.
디지털 신호 처리 시스템은 프로그램가능한 프로세서 및 프로그램 가능한 프로세서에 결합된 주변 디바이스를 포함하도록 이용할 수 있으며, 상기 프로세서는 단일 데이터 요소에서, 개별적으로, 판독 동작 및 기록 동작을 이용하는 주변 디바이스와 통신하도록 배열되는 것으로 이용가능하다.

Claims (15)

  1. 디지털 신호 처리 시스템으로서, 프로그램 가능한 프로세서(PROC) 및 프로그램 가능한 프로세서에 결합된 주변 디바이스(PD,MEM)를 포함하며, 상기 프로세서는 단일 데이터 요소상, 판독 동작 및 기록 동작을 각각 이용하여 주변 디바이스와 통신하도록 배열되는 디지털 신호 처리 시스템에 있어서, 버스트 생성 디바이스(BG)가 단일 버스트 판독 동작 또는 단일 버스트 기록 동작 각각에서 복수의 판독 동작 또는 복수의 기록 동작을 그룹핑하도록 배열되는 것을 특징으로 하는, 디지털 신호 처리 시스템.
  2. 제 1항에 있어서, 상기 프로그램 가능한 프로세서는 버스트 판독 동작 또는 버스트 기록 동작을 각각 이용하여 주변 디바이스와 통신하도록 추가적으로 배열되고, 여기서 버스트 생성 디바이스는 버스트 판독 동작과 추가적인 버스트 판독 동작, 또는 적어도 하나의 판독 동작을 단일 버스트 판독 동작으로 그룹핑하도록, 및 버스트 기록 동작 및 추가적인 버스트 기록 동작 또는 적어도 하나의 기록 동작을 단일 버스트 기록 동작으로 그룹핑하도록 각각 추가적으로 배열되는 것을 특징으로 하는, 디지털 신호 처리 시스템.
  3. 제 2항에 있어서, 만약 버스트 판독 동작 또는 버스트 기록 동작이 개별적으로, 단일 버스트 판독 동작 또는 단일 버스트 기록 동작의 각각의 원하는 크기보다 더 큰 크기를 가지는 경우, 버스트 생성 디바이스는 버스트 판독 동작 및 버스트 기록 동작을 각각 둘 이상의 버스트 동작으로 나누는 점을 특징으로하는, 디지털 신호 처리 시스템.
  4. 제 1 항에 있어서, 상기 프로그램 가능한 프로세서는 상기 버스트 생성 디바이스에 대해 제어 정보를 저장하기 위해 배열된 적어도 하나의 구성 레지스터(CR)를 포함하는 점을 특징으로 하는, 디지털 신호 처리 시스템.
  5. 제 4항에 있어서, 상기 구성 레지스터는 원하는 크기의 단일 버스트 판독 동작 또는 단일 버스트 기록 동작을 각각 저장하도록 배열되는 점을 특징으로 하는, 디지털 신호 처리 시스템.
  6. 제 5항에 있어서, 상기 구성 레지스터는 두 개의 잇따른 단일 버스트 동작 사이의 최대 시간 간격을 제어하는데 사용되는, 타임 아웃 값을 저장하도록 추가적으로 배열되는 점을 특징으로 하는, 디지털 신호 처리 시스템.
  7. 제 1항에 있어서, 상기 버스트 생성 디바이스는:
    - 프로그램 가능한 프로세서로부터 판독 및 기록 동작을 수신하고, 판독 및 기록 동작으로부터 유도된 정보에 기초하여, 단일 버스트 판독 동작 또는 단일 버스트 기록 동작의 릴리즈를 개별적으로 트리거링하는, 전용 토큰을 생성하도록 구 성되는 콜렉터 회로(COL);
    - 전용 토큰을 저장하기 위한 제 1 FIFO 버퍼(BUF1);
    - 판독 및 기록 동작으로부터 각각 유도된 정보를 저장하기 위한 제 2 FIFO 버퍼(BUF2);
    - 상기 제 1 FIFO 버퍼로부터 수신된 전용 토큰의 제어하에, 상기 제 2 FIFO 버퍼로부터 단일 버스트 기록 동작 또는 단일 버스트 판독 동작의 릴리즈를 개별적으로 초기화하도록 배열된 릴리즈 회로(REL)
    를 포함하는 점을 특징으로 하는, 디지털 신호 처리 시스템.
  8. 제 2항에 있어서, 만약 단일 버스트 동작이 단일 버스트 동작의 원하는 크기와 동일하지 않은 크기를 가진다면, 상기 버스트 생성 디바이스는 단일 버스트 판독 동작 또는 단일 버스트 기록 동작의 릴리즈를 각각 트리거하도록 추가적으로 배열되는 점을 특징으로 하는, 디지털 신호 처리 시스템.
  9. 제 8항에 있어서, 단일 버스트 동작의 릴리즈는, 복수의 판독 동작 또는 복수의 기록 동작이 단일 데이터 요소의 크기에 대응하는 단계 크기로 오름차순으로 배열된 대응하는 복수의 메모리 어드레스를 참조하는지의 여부에 의존하는 점을 ㅌ특징으로 하는, 디지털 신호 처리 시스템.
  10. 제 8항에 있어서, 단일 버스트 동작의 릴리즈는 상기 버스트 생성 디바이스 에 의해 수신된, 각각의 다음 버스트 기록 또는 판독 동작이 단일 버스트 동작의 원하는 크기와 동일한 크기를 가지는지의 여부에 의존하는 점을 특징으로 하는, 디지털 신호 처리 시스템.
  11. 제 8항에 있어서, 단일 버스트 동작의 릴리즈는 상기 프로그램 가능한 프로세서로부터의 플러시(flush) 명령의 수신에 의존하는 점을 특징으로 하는, 디지털 신호 처리 시스템.
  12. 제 2항에 있어서, (버스트) 판독 동작 또는 기록 동작은 각각 다음의 정보:
    - (버스트) 판독 또는 기록 동작 각각의 유효성을 나타내는 식별자;
    - (버스트) 판독 또는 (버스트) 기록 동작을 각각 나타내는 식별자;
    - (버스트) 판독 또는 (버스트) 기록 동작이 각각 참조하는 메모리 어드레스;
    - (버스트) 기록 동작의 경우, 메모리에 기록되는 데이터;
    - (버스트) 판독 동작 또는 (버스트) 기록 동작 각각의 시작을 나타내는 식별자;
    - (버스트) 판독 동작 또는 (버스트) 기록 동작 각각의 크기를 나타내는 식별자
    를 포함하도록 배열되는 점을 특징으로 하는, 디지털 신호 처리 시스템.
  13. 제 12항에 있어서, (버스트) 판독 또는 기록 동작은 각각 다음의 정보:
    - (버스트) 동작이 참조하는 단일 데이터 요소의 비트수를 나타내는 식별자;
    - (버스트) 기록 동작의 경우, 데이터가 기록되어야 하는 단일 데이터 요소에서 비트 위치를 나타내는 마스크 식별자
    를 포함하는 점을 특징으로 하는, 디지털 신호 처리 시스템.
  14. 제 1항에 있어서, 상기 주변 디바이스가 물리적인 메모리인 점을 특징으로 하는, 디지털 신호 처리 시스템.
  15. 제 1항에 있어서, 상기 주변 디바이스는 통신 디바이스인 점을 특징으로 하는, 디지털 신호 처리 시스템.
KR1020077005952A 2004-08-17 2005-08-11 버스트 판독기록 동작을 구비한 처리 장치 KR101121592B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP04103944.7 2004-08-17
EP04103944 2004-08-17
PCT/IB2005/052670 WO2006018802A1 (en) 2004-08-17 2005-08-11 Processing apparatus with burst read write operations

Publications (2)

Publication Number Publication Date
KR20070042207A true KR20070042207A (ko) 2007-04-20
KR101121592B1 KR101121592B1 (ko) 2012-03-12

Family

ID=35106870

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020077005952A KR101121592B1 (ko) 2004-08-17 2005-08-11 버스트 판독기록 동작을 구비한 처리 장치

Country Status (8)

Country Link
US (1) US7555576B2 (ko)
EP (1) EP1782218B1 (ko)
JP (1) JP4813485B2 (ko)
KR (1) KR101121592B1 (ko)
CN (1) CN101040272A (ko)
AT (1) ATE400848T1 (ko)
DE (1) DE602005008074D1 (ko)
WO (1) WO2006018802A1 (ko)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7369491B1 (en) * 2003-05-14 2008-05-06 Nortel Networks Limited Regulating data-burst transfer
US20070143546A1 (en) * 2005-12-21 2007-06-21 Intel Corporation Partitioned shared cache
US7668186B1 (en) * 2006-03-07 2010-02-23 Xilinx, Inc. Token ecosystem for buffer management
DE102009044936B4 (de) * 2009-09-24 2022-10-13 Robert Bosch Gmbh Verfahren zum Austauschen von Daten
CN102207919A (zh) * 2010-03-30 2011-10-05 国际商业机器公司 加速数据传输的处理单元、芯片、计算设备和方法
JP5118731B2 (ja) * 2010-08-12 2013-01-16 株式会社東芝 キャッシュユニット及びプロセッシングシステム
CN102567241A (zh) * 2010-12-27 2012-07-11 北京国睿中数科技股份有限公司 存储器控制器及存储器访问控制方法
CN102541506B (zh) * 2010-12-29 2014-02-26 深圳市恒扬科技有限公司 一种fifo数据缓存器、芯片以及设备
US8799750B1 (en) * 2011-05-09 2014-08-05 Xilinx, Inc. Convolutional interleaver for bursty memory access
US9449360B2 (en) * 2011-12-28 2016-09-20 Intel Corporation Reducing the number of sequential operations in an application to be performed on a shared memory cell
US9569384B2 (en) * 2013-03-14 2017-02-14 Infineon Technologies Ag Conditional links for direct memory access controllers
US10318292B2 (en) 2014-11-17 2019-06-11 Intel Corporation Hardware instruction set to replace a plurality of atomic operations with a single atomic operation
US11226741B2 (en) * 2018-10-31 2022-01-18 EMC IP Holding Company LLC I/O behavior prediction based on long-term pattern recognition

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5016160A (en) 1988-12-15 1991-05-14 International Business Machines Corporation Computer system having efficient data transfer operations
ATE185631T1 (de) * 1991-08-16 1999-10-15 Cypress Semiconductor Corp Dynamisches hochleistungsspeichersystem
US5835972A (en) * 1996-05-28 1998-11-10 Advanced Micro Devices, Inc. Method and apparatus for optimization of data writes
US5892978A (en) * 1996-07-24 1999-04-06 Vlsi Technology, Inc. Combined consective byte update buffer
FR2778258A1 (fr) * 1998-04-29 1999-11-05 Texas Instruments France Controleur d'acces de trafic dans une memoire, systeme de calcul comprenant ce controleur d'acces et procede de fonctionnement d'un tel controleur d'acces
JP2001035153A (ja) * 1999-07-23 2001-02-09 Fujitsu Ltd 半導体記憶装置
US6496905B1 (en) * 1999-10-01 2002-12-17 Hitachi, Ltd. Write buffer with burst capability
JP2001331440A (ja) * 2000-05-22 2001-11-30 Sharp Corp データ受信処理装置
US6574707B2 (en) * 2001-05-07 2003-06-03 Motorola, Inc. Memory interface protocol using two addressing modes and method of operation
JP2003085129A (ja) * 2001-07-03 2003-03-20 Sharp Corp データ通信コントローラ及びデータ転送装置

Also Published As

Publication number Publication date
JP2008510246A (ja) 2008-04-03
JP4813485B2 (ja) 2011-11-09
KR101121592B1 (ko) 2012-03-12
EP1782218B1 (en) 2008-07-09
DE602005008074D1 (de) 2008-08-21
ATE400848T1 (de) 2008-07-15
US7555576B2 (en) 2009-06-30
WO2006018802A1 (en) 2006-02-23
US20080109572A1 (en) 2008-05-08
CN101040272A (zh) 2007-09-19
EP1782218A1 (en) 2007-05-09

Similar Documents

Publication Publication Date Title
KR101121592B1 (ko) 버스트 판독기록 동작을 구비한 처리 장치
US9037810B2 (en) Pre-fetching of data packets
US5530941A (en) System and method for prefetching data from a main computer memory into a cache memory
US9280290B2 (en) Method for steering DMA write requests to cache memory
JP2006146921A (ja) 追跡バッファでブックマークを使用するための方法及びシステム
US20070180158A1 (en) Method for command list ordering after multiple cache misses
US11023410B2 (en) Instructions for performing multi-line memory accesses
US20080133798A1 (en) Packet receiving hardware apparatus for tcp offload engine and receiving system and method using the same
US20150143045A1 (en) Cache control apparatus and method
US20070180156A1 (en) Method for completing IO commands after an IO translation miss
CN111684427A (zh) 高速缓存控制感知的存储器控制器
TW201305821A (zh) 控制快閃記憶體介質系統的方法、裝置及固態記憶體件
US8880847B2 (en) Multistream prefetch buffer
US20050253858A1 (en) Memory control system and method in which prefetch buffers are assigned uniquely to multiple burst streams
CN113900974B (zh) 一种存储装置、数据存储方法及相关设备
JP2001290706A (ja) Tlbキャッシュのためのプリフェッチ
JPH1196072A (ja) メモリアクセス制御回路
EP2722763A1 (en) Arithmetic processing unit, information processing device, and arithmetic processing unit control method
CN107783909B (zh) 一种内存地址总线扩展方法及装置
JP2007207249A (ja) ミス衝突処理状態でのキャッシュ・ヒットのための方法、システムおよびマイクロプロセッサ
US8332568B2 (en) Memory access determination circuit, memory access determination method and electronic device
US20110283068A1 (en) Memory access apparatus and method
CN109144742B (zh) 通过队列交换信息的方法和处理队列的系统
EP0853283A1 (en) Computer system with memory controller for burst transfer
CN107807888B (zh) 一种用于soc架构的数据预取系统及其方法

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
N231 Notification of change of applicant
FPAY Annual fee payment

Payment date: 20150130

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160127

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170201

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20180201

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20190129

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20200129

Year of fee payment: 9