KR101380364B1 - 적어도 하나의 dma 주변장치 및 직각위상 클록으로 동작하는 cpu 사이의 싱글 포트 sram의 대역폭 공유 - Google Patents

적어도 하나의 dma 주변장치 및 직각위상 클록으로 동작하는 cpu 사이의 싱글 포트 sram의 대역폭 공유 Download PDF

Info

Publication number
KR101380364B1
KR101380364B1 KR1020107014531A KR20107014531A KR101380364B1 KR 101380364 B1 KR101380364 B1 KR 101380364B1 KR 1020107014531 A KR1020107014531 A KR 1020107014531A KR 20107014531 A KR20107014531 A KR 20107014531A KR 101380364 B1 KR101380364 B1 KR 101380364B1
Authority
KR
South Korea
Prior art keywords
memory
interface
single port
cpu
dma
Prior art date
Application number
KR1020107014531A
Other languages
English (en)
Other versions
KR20100117564A (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 KR20100117564A publication Critical patent/KR20100117564A/ko
Application granted granted Critical
Publication of KR101380364B1 publication Critical patent/KR101380364B1/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
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • G06F13/1663Access to shared memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Microcomputers (AREA)
  • Static Random-Access Memory (AREA)

Abstract

듀얼 또는 트리플 액세스 인터페이스(예를 들면, 하드웨어 및 소프트웨어 구현)는, CPU 및 DMA 주변장치 사이의 액세스 요청들을 중재함으로써 CPU와 적어도 하나의 DMA 주변장치(예를 들면, 범용 직렬 버스(USB) DMA 엔진)가 범용 싱글 포트 SRAM에 대한 입력 및/또는 출력을 가능하게 하고, 이어서, CPU의 메모리 액세스 처리량 요청 및 DMA의 메모리 액세스 처리량 요청의 양자를 만족시킬 수 있도록 싱글 포트 SRAM에 대한 메모리 사이클들을 형성한다. 이것은, CPU와 적어도 하나의 DMA 주변장치가, 예를 들면, 2 또는 3 동시 메모리 액세스 요청들 사이에서 승인된 액세스를 시간 다중화함으로써 공유된 싱글 포트 SRAM에 액세스할 수 있도록 하고, 그 결과 듀얼 포트 메모리의 필요성을 없앨 수 있게 된다.

Description

적어도 하나의 DMA 주변장치 및 직각위상 클록으로 동작하는 CPU 사이의 싱글 포트 SRAM의 대역폭 공유{SHARING BANDWIDTH OF A SINGLE PORT SRAM BETWEEN AT LEAST ONE DMA PERIPHERAL AND A CPU OPERATING WITH A QUADRATURE CLOCK}
본 발명은 디지털 디바이스들 및 그의 메모리 액세스에 관한 것으로서, 보다 상세하게는, 직각위상 클록으로 동작하는 중앙 처리 유닛(CPU)과 직접 메모리 액세스(DMA) 주변장치 사이에서 싱글 포트 스태틱 랜덤 액세스 메모리(SRAM)의 대역폭을 공유하는 방식에 관한 것이다.
CPU 및 고속 DMA 주변장치는, 그들 각각의 메모리 액세스시에 CPU와 DMA 주변장치 사이에서의 어떠한 종류의 메모리 버스 중재도 없이 CPU와 DMA 주변장치에 의한 독립적인 액세스를 허용하는 듀얼 포트 SRAM에 연결함으로써 메모리를 공유할 수 있다. 듀얼 포트 SRAM은, 일반적인 싱글 포트 SRAM보다 고가이고 다이(die) 영역을 많이 차지한다.
직각위상 클록으로 동작하는 CPU와 DMA 주변장치 사이에서 싱글 포트 SRAM의 대역폭을 공유하는 방식이 요구된다.
본 발명에 따르면, 듀얼 액세스 인터페이스(예를 들면, 하드웨어 및 소프트웨어 구현)는, CPU 및 DMA 주변장치(예를 들면, 범용 직렬 버스(USB) DMA 엔진)가 CPU와 DMA 주변장치 사이에서의 액세스 요청들을 중재함으로써 일반적인 싱글 포트 SRAM으로 데이터를 입력 및 출력하는 전송을 허용하도록 할 수 있으며, 이어서, CPU 및 DMA 주변장치의 메모리 액세스 처리량 요청들을 만족시킬 수 있도록 싱글 포트 SRAM에 대한 메모리 사이클들을 형성한다. 이것은, CPU와 DMA 주변장치가 예를 들면 2개의 동시 메모리 액세스 요청들 사이에서 승인된 액세스들을 시간 다중화함으로써 공유된 싱글 포트 SRAM에 액세스할 수 있게 하여, 듀얼 포트 메모리의 필요성을 없앤다.
본 발명의 일 실시예에 따르면, 직접 메모리 액세스(DMA) 주변장치 사이와 직각위상 클록으로 동작하는 중앙 처리 유닛(CPU)과의 사이에서 싱글 포트 스태틱 랜덤 액세스 메모리(SRAM)의 대역폭을 공유하는 장치는: 제1 메모리 인터페이스를 갖는 중앙 처리 유닛(CPU), 제2 메모리 인터페이스를 갖는 직접 메모리 액세스(DMA) 주변장치; 제3 메모리 인터페이스를 갖는 싱글 포트 스태틱 랜덤 액세스 메모리(SRAM); 및 제4, 제5 및 제6 메모리 인터페이스들을 갖는 듀얼 액세스 인터페이스를 구비하고, 이때, 상기 제4 메모리 인터페이스는 상기 제1 메모리 인터페이스에 연결되고, 상기 제5 메모리 인터페이스는 상기 제2 메모리 인터페이스에 연결되고, 상기 제6 메모리 인터페이스는 상기 제3 메모리 인터페이스에 연결되고, 이에 의해, 상기 듀얼 액세스 인터페이스는, 상기 CPU가, 상기 싱글 포트 SRAM과의 DMA 트랜잭션 동안에, 상기 싱글 포트 SRAM과 판독, 기록, 및 판독-수정-기록 트랜잭션들을 수행할 수 있도록 한다. 이러한 장치는, 상기 제2 DMA 주변장치를 위한 추가적인 메모리 인터페이스를 갖는 트리플 액세스 인터페이스를 통해, 상술한 DMA 주변장치와 유사하게 동작하는 제2 DMA 주변장치를 더 구비할 수 있다.
본 발명은, CPU와 DMA 주변장치가 예를 들면 2개의 동시 메모리 액세스 요청들 사이에서 승인된 액세스들을 시간 다중화함으로써 공유된 싱글 포트 SRAM에 액세스할 수 있게 하여, 듀얼 포트 메모리의 필요성을 없앨 있게 된다.
또한, 본 발명은, 상기 듀얼 액세스 인터페이스가, 상기 CPU가 상기 싱글 포트 SRAM과의 DMA 트랜잭션 동안에, 상기 싱글 포트 SRAM과 판독, 기록, 및 판독-수정-기록 트랜잭션들을 수행할 수 있도록 한다.
첨부한 도면과 관련한 이어지는 설명을 참조하여, 본 발명에 대한 더욱 완전한 이해를 도모할 수 있다.
도 1은, 중앙 처리 유닛(CPU) 및 직접 메모리 액세스(DMA) 주변장치에 연결된 종래 기술의 듀얼 포트 스태틱 랜덤 액세스 메모리(SRAM)에 대한 개략적인 블록도이다.
도 2는, 본 발명의 일 실시예에 따른, 듀얼 액세스 인터페이스를 통해 중앙 처리 유닛(CPU) 및 직접 메모리 액세스(DMA) 주변장치에 연결된 싱글 포트 스태틱 랜덤 액세스 메모리(SRAM)에 대한 개략적인 블록이다.
도 3은, 도 2에 도시된 실시예에 따른, 듀얼 액세스 싱글 포트 SRAM 인터페이스에 대한 개략적인 블록도이다.
도 4는, 도 2 및 도 3에 도시된 본 발명의 실시예에 따른, DMA 사이클 동안에 판독-수정-기록을 수행하는 CPU의 타이밍도이다.
도 5는, 본 발명의 또다른 실시예에 따른, 트리플 액세스 인터페이스를 통해 중앙 처리 유닛(CPU) 및 제1 및 제2 직접 메모리 액세스(DMA) 주변장치들에 연결된 싱글 포트 스태틱 랜덤 액세스 메모리(SRAM)에 대한 개략적인 블록도이다.
도 6은, 도 5에 도시된 실시예에 따른, 트리플 액세스 싱글 포트 SRAM 인터페이스에 대한 개략적인 블록도이다.
비록, 본 발명이 다양한 수정 및 대체 형태를 허용할 수 있지만, 여기에서는 특정한 실시예를 도시하고 이를 상세하게 설명하고 있다. 하지만, 특정한 실시예에 대한 설명은, 본 발명을 여기에 설명된 특정 형태로의 한정을 의도하는 것이 아니며, 오히려, 본 발명은 첨부한 특허청구범위에 의해 정의된 모든 수정 및 균등물을 포함하는 것이다.
도면을 참조하여 본 발명의 실시예들을 설명한다. 도면에서 동일한 요소들에 대해서는 동일한 번호로 표시되며, 유사한 요소들에 대해서는 서로 다른 첨자를 갖는 동일한 번호로 표시된다.
도 1은, 중앙 처리 유닛(CPU) 및 직접 메모리 액세스(DMA) 주변장치에 연결된 종래 기술의 듀얼 포트 스태틱 랜덤 액세스 메모리(SRAM)에 대한 개략적인 블록도이다. 듀얼 포트 SRAM(102)은 2개의 판독/기록 인터페이스(104a 및 104b)를 갖는다. 하나의 판독/기록 인터페이스(104a)는 메모리 버스(106)를 통해 CPU(108)에 연결된다. 다른 하나의 판독/기록 인터페이스(104b)는 메모리 버스(110)를 통해 DMA 주변장치(112)에 연결된다. 2개의 판독/기록 인터페이스들(104)을 가짐으로써, CPU(108) 및 DMA 주변장치(112)는, 메모리 버스 중재를 거치지 않고, 듀얼 포트 SRAM(102)에 액세스할 수 있게 된다. 하지만, 듀얼 포트 SRAM(102)는, 싱글 포트 RAM에 비하여, 고가이고 더 많은 다이 영역을 차지한다.
도 2는, 본 발명의 일 실시예에 따른, 듀얼 액세스 인터페이스를 통해 중앙 처리 유닛(CPU) 및 직접 메모리 액세스(DMA) 주변장치에 연결된 싱글 포트 스태틱 랜덤 액세스 메모리(SRAM)에 대한 개략적인 블록이다. 듀얼 액세스 인터페이스(214)는, CPU(108) 및 DMA 주변장치(112)를 싱글 포트 SRAM(202)의 판독/기록 인터페이스(204)에 연결시키기 위해 이용된다. CPU(108)는 데이터 및 어드레스 버스(106)를 통해 듀얼 액세스 인터페이스(214)에 연결된다. DMA 주변장치(112)는 데이터 및 어드레스 버스(110)를 통해 듀얼 액세스 인터페이스(214)에 연결된다. 듀얼 액세스 인터페이스(214)는 데이터 및 어드레스 버스(216)를 통해 싱글 포트 SRAM(202)에 연결된다. 그러므로, CPU(108) 및 DMA 주변장치(112)는, 공통으로 공유된 어드레스 및 데이터 버스를 이용하는 경우에 필요한 버스 중재를 거치지 않고, 싱글 포트 SRAM(202)에 각각 액세스할 수 있다. 싱글 포트 SRAM(202)은, 듀얼 포트 SRAM보다 저렴하고 다이 영역을 적게 차지하기 때문에, 대부분의 애플리케이션에서 이용되기에 적당하다. 데이터 및 어드레스 버스(106, 110 및 216)는, 통상적으로, 병렬 버스들이지만, 이러한 버스들이 직렬 버스들이거나, 일부는 직렬 버스이고 다른 일부는 병렬 버스일 수 있다는 것 또한 고려될 수 있으며 본 발명의 범위에 포함되는 것이다.
도 3은, 도 2에 도시된 실시예에 따른, 듀얼 액세스 싱글 포트 SRAM 인터페이스에 대한 개략적인 블록도이다. 듀얼 액세스 인터페이스(214)는, 트랜잭션 표시기(320), DMA 사이클 발생기(322), CPU 사이클 발생기(324), 및 데이터/어드레스 패스 로직(326)을 포함할 수 있다. 적절한 어드레스, 데이터 및 제어 신호들은, 필요하다면 각각이 듀얼 액세스 인터페이스(214)를 통해 싱글 포트 SRAM(202)에 독립적으로 액세스할 수 있도록, CPU(108) 및 DMA 주변장치(112)와 연결될 수 있다. 듀얼 액세스 인터페이스(214)를 위한 또다른 회로 구현들이, 본 발명의 기술 내용으로부터 이득을 얻을 수 있다면, 메모리 인터페이스의 기술 분야에 대한 일반적인 지식을 가진 자에 의해 쉽게 달성될 수 있을 것이다.
다음은, 본 발명의 도 2 및 도 3에 도시된 실시예에 따른, 듀얼 액세스 인터페이스(214)의 동작에 대한 간략한 설명이다. 도 4는, DMA 사이클 동안에 판독-수정-기록을 수행하는 CPU(108)의 타이밍도이다.
판독 트랜잭션들
CPU(108)가 듀얼 액세스 인터페이스(214)로 판독 트랜잭션을 발행하면, 듀얼 액세스 인터페이스(214)는 싱글 포트 SRAM(202)에 대한 판독 사이클을 생성하기 전에, 하나의 메모리 사이클을 기다릴 수 있으며, 그리고나서, 싱글 포트 SRAM(202)은 메모리 액세스 타임이 종료한 후 판독 데이터를 제공한다. 듀얼 액세스 인터페이스(214)는, 이후, 판독 데이터를 래치하고, 버스(216)를 해방하고(free up), 동시에, 데이터가 CPU(108)에서 이용가능하도록 한다. 버스들(106 및 216)은, 정확히 하나의 메모리 사이클 - 판독 스트로브(strobe) 및 어드레스를 할당하는(assert) 경우에는 제2 사이클 - 동안, CPU(108)의 판독 트랜잭션에 의해 사용될 수 있다.
클록 주기가 끝날 때까지의 남은 사이클에서(도 4의 cpu_clk 참조), 싱글 포트 SRAM(202)은 듀얼 액세스 인터페이스(214)에 의해 액세스될 수 있다. CPU(108)가 더높은 우선순위를 갖기 때문에, DMA 주변장치(112)에 의한 요청에 상관없이 트랜잭션 경계 내의 동일한 관련 시점(relative time)에서, 대응하는 CPU 판독 사이클이 발생한다. 듀얼 액세스 인터페이스(214)가 버스(216) 상에 메모리 판독 트랜잭션을 발행하면, 듀얼 액세스 인터페이스(214)는 버스(216)가 안정화될 때까지의 시간을 허용하기 위하여 1 사이클을 기다린다. 만약 버스(216)의 어드레스 라인들이 이용되지 않는다면, 이후 듀얼 액세스 인터페이스(214)는 버스(216) 상에 DMA를 위한 대응하는 사이클을 형성한다. 그렇지 않으면, 듀얼 액세스 인터페이스(214)는 버스(110) 상에 dma_ready 신호의 할당(assertion)을 기다린다. 듀얼 액세스 인터페이스(214)는, 판독 데이터를, 버스(110) 상의 DMA 주변장치(112)에서 이용가능하게 될 때까지 래치할 수 있다.
기록 트랜잭션들
CPU(108)가 기록 트랜잭션을 생성하면, 클록 주기가 끝날 때까지 기다리지 않는다(도 4의 cpu_clk 참조). 듀얼 액세스 인터페이스(214)는, 버스(216)가 안정화될 때까지의 시간을 허용하기 위하여 1 메모리 사이클 동안을 다시 기다리고, 이어서 제4 사이클에서 싱글 포트 SRAM(202)에 대해 대응하는 기록 사이클을 형성하고, CPU(108)를 위한 기록 트랜잭션을 처리완료한다.
만약 DMA 주변장치(112)가 메모리 트랜잭션을 발행하면, DMA 주변장치(112)는 1 사이클을 기다리게 된다. 이후, 메모리 어드레스 버스(216)가 사용중이지 않으면, 듀얼 액세스 인터페이스(214)는 싱글 포트 SRAM(202)에 대하여 대응하는 사이클을 형성하고, DMA 주변장치(112)의 요청을 처리완료한다. 이것은, CPU(108)와 DMA 주변장치(112)가 동시에 그들의 트랜잭션을 시작하는지를 의미할 수 있으며, DMA 주변장치(112)는 먼저 종료되도록 허용될 것이다.
판독-수정-기록 트랜잭션
CPU(108)가 판독-수정-기록 트랜잭션을 발행하면, 듀얼 액세스 인터페이스(214)는 그것을 2개의 메모리 사이클(판독 사이클 1개 및 기록 사이클 1개)로 구분한다. 듀얼 액세스 인터페이스(214)는, 사이클 3의 시작에서, 판독 데이터를 CPU(108)로 되돌린다. 판독 데이터에 기초하여, CPU(108)는, 사이클 4의 끝에서 싱글 포트 SRAM(202)에 대한 기록 사이클을 형성하고 처리완료하기 위해, 듀얼 액세스 인터페이스(214)를 위한 기록 데이터를 계산한다.
여기에서 논의된 다른 경우에서, DMA 주변장치(112)의 요청을 위해 동일한 원리가 적용된다. 듀얼 액세스 인터페이스(214)는, 싱글 포트 SRAM(202)에 대한 대응하는 메모리 사이클들을 형성하기 전에 적어도 1 사이클을 기다린다.
하지만, 듀얼 액세스 인터페이스는, 도 4에 도시된 바와 같이 DMA 주변장치에 의해 요청된 메모리 판독 사이클을 형성하기 전에, CPU의 판독-수정-기록 트랜잭션이 처리완료할 때까지 기다린다. 이것은, 듀얼 액세스 인터페이스가 서비스되고 있는 CPU 및 DMA 주변장치 양자로부터의 메모리 액세스를 위한 요청을 만족시킬 수 있는 경우에, 전력을 절약하기 위하여 시스템 내의 신호 스위칭을 최소화한다. 듀얼 액세스 인터페이스는, 대역폭에 대한 더 상위의 요청을 갖는 DMA 주변장치를 위해, 판독-수정-기록 트랜잭션의 판독 사이클 및 기록 사이클 내의 DMA 요청을 만족시키도록 메모리 액세스 사이클을 수정할 수 있다. 이것은, 현재의 DMA 트랜잭션이 더 빨리 완료되도록 하고, 그에 따라 DMA 주변장치가 더 많은 메모리 사이클들에 액세스할 수 있도록 한다. 더욱, 2개의 DMA 주변장치들을 갖는 시스템을 위하여, 추가적인 DMA 포트가, 3개의 메모리 요청 행위자, 즉, CPU, DMA1 주변장치, 및 DMA2 주변장치(즉, 도 5 및 도 6을 참조)를 수용할 수 있는 듀얼 액세스 인터페이스에 추가될 수 있다.
트랜잭션 생성기들
듀얼 액세스 인터페이스(214)는 3개의 인터페이스의 기능들을 수행한다. 그것은, CPU(108) 및 DMA 주변장치(112)로부터의 요청들에 응답하는 슬레이브들로서 기능하고, 또한, 싱글 포트 SRAM(202)에 대한 마스터로서 기능한다. 듀얼 액세스 인터페이스(214)는, 사용가능한 대역폭을 찾아내기 위해 그것의 슬레이브 인터페이스들의 제어 신호들을 관리함으로써 CPU(108) 및 DMA 주변장치(112)로부터의 요청들을 처리하고, 또한 싱글 포트 SRAM(202)로/로부터 채널링 데이터를 처리한다.
트랜잭션 감시기
트랜잭션 표시기(320)(transaction indicator)는, CPU(108)가 메모리 트랜잭션을 시작하는지를 감시하고 표시하기 위해 이용될 수 있다. 이것은, 듀얼 액세스 인터페이스(214)가, CPU(108)의 메모리 트랜잭션을 완료하기 위해 적절한 메모리 사이클들을 형성하도록 하고, 이어서, DMA 주변장치(112)로부터의 메모리 트랜잭션과의 충돌을 회피하도록 하는 신호들을 제공한다. 트랜잭션 표시기(320)는 다양한 클록 주파수를 처리할 수 있다(도 4의 cpu_clk 참조).
더욱, 트랜잭션 표시기(320)는, CPU(108)의 클록이 스위칭을 정지한 상태에서, 휴지 모드를 감지할 책임이 있을 수 있다. 이것은, 실제로는, DMA 주변장치(112)가 모든 메모리 대역폭을 이용할 수 있도록 한다.
CPU 메모리 사이클 생성기
트랜잭션 표시기(320)에 의해 신호가 출력되면, CPU 사이클 생성기(324)는, CPU(108)의 요청에 기초하여 메모리 사이클들을 형성하기 위해 필수적인 제어 신호들을 생성한다. 이와 동시에, CPU 사이클 생성기(324)는, 제어 신호의 전개(development)로서, 듀얼 액세스 인터페이스(214)의 다른 부분들로 신호를 출력한다. 메모리 버스(216)를 해방하기 위하여, 싱글 포트 SRAM(202)으로부터의 판독 데이터를 래치하도록 설계될 수도 있다.
DMA 사이클 생성기
CPU 트랜잭션의 경계 및 그것의 활동에 관한 입력을 이용하여, DMA 사이클 생성기(322)는 DMA 주변장치(112)로부터의 요청에 기초하여 메모리 사이클을 형성한다. DMA 사이클 생성기(322)는, CPU의 요청으로부터의 메모리 사이클들과 충돌하는 것을 회피하도록 할 책임이 있기 때문에, 트랜잭션이 처리완료되려고 하는지를 DMA 주변장치(112)에 표시해준다.
데이터 패스 관리
듀얼 액세스 인터페이스(214)의 데이터/어드레스 패스 로직(326)은, CPU 및 DMA 사이클 트랜잭션 생성기들(324 및 322) 각각으로부터의 제어 신호에 기초하여, 3개의 모든 버스 인터페이스들에 대하여, 데이터를 전송할 그리고/또는 버퍼링할 책임이 있다. 싱글 포트 SRAM(202)으로의 버스(216) 상의 출력 어드레스는, CPU 또는 DMA 사이클 트랜잭션 생성기(324 또는 322) 각각 중 어느 것에 의해 메모리 액세스가 일어났는지에 의존하여, CPU 및 DMA 중 하나로부터의 버스(106 또는 110) 상의 입력 어드레스와 동일하다.
메모리로의 판독 및 기록 스트로브(strobe)들의 출력은, 생성기의 출력으로부터 얻게 된다. 오직 한 타입(예를 들면, 판독 또는 기록)의 사이클만이 한 시점에 발생할 수 있기 때문에, 판독 스트로브는, 2개의 생성기(322 또는 324)로부터의 판독 표시기들의 단순한 논리적 OR일 수 있다. 같은 원리가 기록 스트로브에도 적용될 수 있다.
하나의 클록 주기의 진행에 있어서, 싱글 포트 SRAM(202)은, 요청 행위자(들)(예를 들면, CPU(108) 및/또는 DMA 주변장치(112))를 위한 데이터를 제공하기 위해 1회 이상 판독된다. 이와 같이, CPU(108)가 판독을 수행할 때, 싱글 포트 SRAM(202)의 대응하는 판독 데이터는 클록 사이클이 끝날 때까지 래치되고 유지된다(도 4의 cpu_clk 참조). 이것은, 싱글 포트 SRAM(202)이 DMA 주변장치(112)에 의해 생성된 또다른 판독 사이클을 제공할 수 있도록 한다. DMA 주변장치(112)가 CPU(108)와 같은 클록 주파수로 동작할 수 있기 때문에, 이용가능하다면, 그것의 데이터를 획득할 수 있다. 하지만, 판독 데이터는, 버스 분할화(partitioning)에 기인한 타이밍 개선 및 파워 절약을 위하여, 래치될 수 있다.
CPU(108) 및 DMA 주변장치(112) 모두는, 트랜잭션이 처리완료할 때까지 그들의 기록 데이터를 유지한다. 이것은, 싱글 포트 SRAM(202)에 대한 출력 기록 데이터 버스는, CPU 및 DMA 사이클 트랜잭션 생성기들(324 및 322) 각각에 의해 명령된 시점에서만 적절한 소스로 다중화되는 것이 요청된다는 것을 의미한다.
도 5는, 본 발명의 또다른 실시예에 따른, 트리플 액세스 인터페이스를 통해 중앙 처리 유닛(CPU) 및 제1 및 제2 직접 메모리 액세스(DMA) 주변장치들에 연결된 싱글 포트 스태틱 랜덤 액세스 메모리(SRAM)에 대한 개략적인 블록도이다. 트리플 액세스 인터페이스(514)는, CPU(108), 제1 DMA 주변장치(112a) 및 제2 DMA 주변장치(112b)를 싱글 포트 SRAM(202)의 판독/기록 인터페이스(204)에 연결하기 위해 이용된다. CPU(108)는 데이터 및 어드레스 버스(106)를 통해 트리플 액세스 인터페이스(514)에 연결된다. DMA 주변장치(112a)는 데이터 및 어드레스 버스(110)를 통해 트리플 액세스 인터페이스(514)에 연결된다. DMA 주변장치(112b)는 데이터 및 어드레스 버스(510)를 통해 트리플 액세스 인터페이스(514)에 연결된다. 트리플 액세스 인터페이스(514)는 데이터 및 어드레스 버스(216)를 통해 싱글 포트 SRAM(202)에 연결된다. 그러므로, CPU(108), DMA 주변장치(112a 및 112b)는, 공통으로 공유된 어드레스 및 데이터 버스를 이용하는 경우에 필요한 버스 중재를 거치지 않고 싱글 포트 SRAM(202)에 각각 액세스할 수 있다. 싱글 포트 SRAM(202)은, 듀얼 포트 SRAM에 비하여 가격이 저렴하고 다이 영역을 적게 차지하기 때문에, 대부분의 애플리케이션에서 이용되기에 적당하다. 데이터 및 어드레스 버스들(106, 110, 510 및 216)은, 통상적으로, 병렬 버스들이지만, 이러한 버스들이 직렬 버스들이거나, 일부는 직렬 버스이고 다른 일부는 병렬 버스일 수 있다는 것 또한 고려될 수 있으며 본 발명의 범위에 포함되는 것이다.
도 6은, 도 5에 도시된 실시예에 따른, 트리플 액세스 싱글 포트 SRAM 인터페이스에 대한 개략적인 블록도이다. 트리플 액세스 인터페이스(514)는, 트랜잭션 표시기(320), DMA 사이클 생성기(322a, 622), CPU 사이클 생성기(324), 및 데이터/어드레스 패스 로직(326)을 포함한다. 적절한 어드레스, 데이터 및 제어 신호들은, 필요하다면 각각이 트리플 액세스 인터페이스(514)를 통해 싱글 포트 SRAM(202)에 독립적으로 액세스할 수 있도록, CPU(108) 및 DMA 주변장치(112a 및 112b)에 연결될 수 있다. 트리플 액세스 인터페이스(514)를 위한 다른 회로 구현들이, 본 발명의 기술 내용으로부터 이득을 얻을 수 있다면, 메모리 인터페이스의 기술 분야에 대한 일반적인 지식을 가진 자에 의해 쉽게 달성될 수 있을 것이다.
본 발명의 도 5 및 도 6에 도시된 일 실시예에 따른, 트리플 액세스 인터페이스(514)의 동작은 상술한 듀얼 액세스 인터페이스(214)의 동작과 유사하다.
CPU(108) 및 듀얼 액세스 인터페이스(214) 또는 트리플 액세스 인터페이스(514)가 싱글 집적 회로 다이(도시하지 않음) 상에 제작될 수 있다는 것은, 고려될 수 있으며 본 발명의 범위에 포함된다. DMA 주변장치(112a), DMA 주변장치(112b) 및/또는 싱글 포트 SRAM(202)도 역시 동일한 집적 회로 다이(도시하지 않음) 상에 제작될 수 있다. CPU는, 예를 들면, 마이크로컨트롤러, 마이크로프로세서, 디지털 신호 처리기(DSP), 주문형 반도체(ASIC), 프로그래머블 로직 어레이(PLA), 시스템 온-칩(SOC) 등의 디지털 프로세서의 일부일 수 있다. DMA 주변장치(112a) 및/또는 DMA 주변장치(112b)가, 예를 들면, 이더넷 인터페이스, 범용 직렬 버스(USB) 인터페이스, 파이어와이어 인터페이스 등의 DMA 인터페이스일 수 있다는 것은, 고려될 수 있으며 본 발명의 범위에 포함된다.
본 발명의 실시예들이 묘사되고, 설명되고, 본 발명의 일례를 참조하여 정의되었지만, 그러한 참조는 본 발명을 제한하고자 하는 것이 아니며, 또한 그러한 제한을 암시하는 것도 아니다. 개시된 사항들은, 관련 기술 분야에 대한 일반적인 지식을 가진 자에 의해, 형태 및 기능상으로 수많은 수정, 대체, 및 균등이 가능하다. 묘사되고 설명된 본 발명의 실시예들은 단지 예시일 뿐이며, 본 발명의 범위를 축소하는 것은 아니다.
214 : 듀얼 액세스 인터페이스
320 : 트랜잭션 표시기
322 : DMA 사이클 생성기
324 : CPU 사이클 생성기
326 : 데이터/어드레스 패스 로직

Claims (24)

  1. 적어도 하나의 직접 메모리 액세스(DMA) 주변장치와 CPU 클록으로 동작하는 중앙 처리 유닛(CPU) 사이의 메모리 클록으로 동작하는 싱글 포트 스태틱 랜덤 액세스 메모리(SRAM)의 대역폭 공유를 위한 장치로서:
    제1 메모리 인터페이스를 갖는 중앙 처리 유닛(CPU);
    제2 메모리 인터페이스를 갖는 직접 메모리 액세스(DMA) 주변장치;
    제3 메모리 인터페이스를 갖는 싱글 포트 스태틱 랜덤 액세스 메모리(SRAM); 및
    상기 제1 메모리 인터페이스에 연결된 제4 메모리 인터페이스, 상기 제2 메모리 인터페이스에 연결된 제5 메모리 인터페이스, 및 상기 제3 메모리 인터페이스에 연결된 제6 메모리 인터페이스를 구비하여, 상기 싱글 포트 SRAM과의 DMA 트랜잭션 동안에, 상기 CPU가 상기 싱글 포트 SRAM와의 판독, 기록 및 판독-수정-기록 트랜잭션을 행하도록 하는 듀얼 액세스 인터페이스를 포함하고,
    CPU 클록 주기 동안, 상기 듀얼 액세스 인터페이스는 상기 CPU 및 상기 DMA 주변장치를 위해 상기 SRAM에 액세스하도록 동작할 수 있고,
    상기 CPU가 상기 듀얼 액세스 인터페이스로 판독 트랜잭션을 발행하는 경우, 상기 듀얼 액세스 인터페이스는:
    하나의 메모리 사이클을 기다리고;
    상기 제6 메모리 인터페이스와 상기 제3 메모리 인터페이스 사이의 링크를 통해 상기 싱글 포트 SRAM에 대해 판독 사이클을 생성하고;
    메모리 액세스 타임이 완료된 후 상기 싱글 포트 SRAM으로부터 판독 데이터를 래치하고, 상기 제3 메모리 인터페이스와 상기 제6 메모리 인터페이스 사이의 상기 링크를 제거하고;
    상기 싱글 포트 SRAM으로부터의 상기 래치된 판독 데이터를 상기 CPU에서 이용가능하게 하고;
    여기서, 상기 SRAM은, 상기 판독 사이클을 제외하고는 상기 DMA 주변장치에 액세스가능한 것을 특징으로 하는 싱글 포트 SRAM의 대역폭 공유 장치.
  2. 제1항에 있어서,
    상기 CPU는 디지털프로세서의 일부분인 싱글 포트 SRAM의 대역폭 공유 장치.
  3. 제2항에 있어서,
    상기 디지털프로세서는,
    마이크로컨트롤러, 마이크로프로세서, 디지털 신호 처리기(DSP), 주문형 반도체(ASIC), 프로그래머블 로직 어레이(PLA), 및 시스템 온-칩(SOC)으로 이루어진 군으로부터 선택되는 싱글 포트 SRAM의 대역폭 공유 장치.
  4. 제1항에 있어서,
    상기 제4 메모리 인터페이스는, 제1 메모리 및 어드레스 버스를 갖는 제1 메모리 인터페이스에 연결되는 싱글 포트 SRAM의 대역폭 공유 장치.
  5. 제1항에 있어서,
    상기 제5 메모리 인터페이스는, 제2 메모리 및 어드레스 버스를 갖는 제2 메모리 인터페이스에 연결되는 싱글 포트 SRAM의 대역폭 공유 장치.
  6. 제1항에 있어서,
    상기 제6 메모리 인터페이스는, 제3 메모리 및 어드레스 버스를 갖는 제3 메모리 인터페이스에 연결되는 싱글 포트 SRAM의 대역폭 공유 장치.
  7. 제1항에 있어서, 상기 DMA 주변장치는 범용 직렬 버스(USB) 주변장치인 싱글 포트 SRAM의 대역폭 공유 장치.
  8. 제1항에 있어서,
    상기 듀얼 액세스 인터페이스는, 상기 싱글 포트 SRAM으로부터의 판독 데이터를 래치하고 상기 래치된 판독 데이터를 상기 DMA 주변장치에서 이용 가능하게 만드는 싱글 포트 SRAM의 대역폭 공유 장치.
  9. 제1항에 있어서,
    상기 CPU가 상기 듀얼 액세스 인터페이스에 기록 트랜잭션을 발행하는 경우, 상기 듀얼 액세스 인터페이스는:
    1개의 메모리 사이클을 기다리고; 및
    상기 싱글 포트 SRAM에 대해 기록 사이클을 생성하는 싱글 포트 SRAM의 대역폭 공유 장치.
  10. 제1항에 있어서,
    상기 CPU가 상기 듀얼 액세스 인터페이스에 판독-수정-기록 트랜잭션을 발행하는 경우, 상기 듀얼 액세스 인터페이스는:
    1개의 메모리 사이클을 기다리고;
    상기 싱글 포트 SRAM에 대해 판독 사이클을 생성하고;
    메모리 액세스 타임이 완료한 후 상기 싱글 포트 SRAM으로부터 판독 데이터를 래치하고;
    상기 싱글 포트 SRAM으로부터의 상기 판독 데이터를 상기 CPU에서 이용 가능하게 만들고;
    1개의 메모리 사이클을 기다리고; 및
    상기 싱글 포트 SRAM에 대해 기록 사이클을 생성하는 싱글 포트 SRAM의 대역폭 공유 장치.
  11. 제1항에 있어서,
    상기 CPU가 상기 듀얼 액세스 인터페이스에 판독-수정-기록 트랜잭션을 발행하는 경우, 상기 듀얼 액세스 인터페이스는:
    1개의 메모리 사이클을 기다리고;
    상기 싱글 포트 SRAM에 대해 판독 사이클을 생성하고;
    메모리 액세스 타임이 완료한 후 상기 싱글 포트 SRAM으로부터 판독 데이터를 래치하고;
    상기 싱글 포트 SRAM으로부터의 상기 판독 데이터를 상기 CPU에서 이용 가능하게 만들고; 및
    상기 싱글 포트 SRAM에 대해 기록 사이클을 생성하는 싱글 포트 SRAM의 대역폭 공유 장치.
  12. 제10항 또는 제11항에 있어서,
    상기 듀얼 액세스 인터페이스는, 상기 DMA 주변장치의 요청에 따라, 상기 판독-수정-기록 트랜잭션의 상기 판독 사이클과 상기 기록 사이클 사이에 상기 SRAM에 액세스하도록 구성된 싱글 포트 SRAM의 대역폭 공유 장치.
  13. 제1항에 있어서,
    상기 듀얼 액세스 인터페이스는,
    트랜잭션 표시기;
    DMA 사이클 생성기;
    CPU 사이클 생성기;
    데이터/어드레스 패스 로직;
    DMA 판독 데이터 준비 로직; 및
    CPU 판독 데이터 준비 로직을 포함하는 싱글 포트 SRAM의 대역폭 공유 장치.
  14. 제13항에 있어서,
    상기 트랜잭션 표시기는,
    상기 듀얼 액세스 인터페이스가 상기 싱글 포트 SRAM으로의 소정의 액세스 트랜잭션을 수행하고 상기 DMA 주변장치로부터의 메모리 액세스 트랜잭션과의 충돌을 회피하도록, 상기 CPU가 상기 싱글 포트 SRAM에 대해 트랜잭션을 요청하는지를 감시하는 싱글 포트 SRAM의 대역폭 공유 장치.
  15. 제13항에 있어서,
    상기 CPU 및 상기 DMA 주변장치로부터의 기록 데이터는, 상기 듀얼 액세스 인터페이스 내에 저장되고, 및 기록 동작 동안의 소정 시점에서 상기 싱글 포트 SRAM으로 다중화되는 싱글 포트 SRAM의 대역폭 공유 장치.
  16. 제13항에 있어서,
    상기 CPU 및 상기 DMA 주변장치로부터의 기록 데이터는, 기록 동작 동안의 소정 시점에서 상기 싱글 포트 SRAM으로 다중화되는 싱글 포트 SRAM의 대역폭 공유 장치.
  17. 제13항에 있어서,
    상기 CPU 및 상기 DMA 주변장치에 의해 요청된 판독 데이터는, 상기 싱글 포트 SRAM에 대해 대응하는 판독 동작들 이후에, 상기 듀얼 액세스 인터페이스 내에 저장되는 싱글 포트 SRAM의 대역폭 공유 장치.
  18. 제1항에 있어서,
    상기 CPU는 상기 DMA 주변장치의 우선순위보다 높은 우선순위를 갖는 싱글 포트 SRAM의 대역폭 공유 장치.
  19. 제1항에 있어서,
    상기 DMA 주변장치는 상기 CPU의 우선순위보다 높은 우선순위를 갖는 싱글 포트 SRAM의 대역폭 공유 장치.
  20. 제1항에 있어서,
    상기 CPU 및 복수의 DMA 주변장치 중 어느 하나는 상기 듀얼 액세스 인터페이스를 제어하는 싱글 포트 SRAM의 대역폭 공유 장치.
  21. 제1항에 있어서,
    복수의 CPU 및 복수의 DMA 주변장치 중 어느 하나는 상기 듀얼 액세스 인터페이스를 제어하는 싱글 포트 SRAM의 대역폭 공유 장치.
  22. 제1항에 있어서,
    상기 DMA 주변장치는 인터페이스인 싱글 포트 SRAM의 대역폭 공유 장치.
  23. 제22항에 있어서,
    상기 인터페이스는, 이더넷 인터페이스, 범용 직렬 버스(USB) 인터페이스, 및 패어와 이어 인터페이스로 이루어진 군으로부터 선택되는 싱글 포트 SRAM의 대역폭 공유 장치.
  24. 제1항에 있어서,
    제7 메모리 인터페이스를 갖는 제2 직접 메모리 액세스(DMA) 주변장치; 및
    제4, 제5, 제6, 제7 및 제8 메모리 인터페이스들을 갖는 트리플 액세스 인터페이스를 더 포함하고,
    상기 제4 메모리 인터페이스는 상기 제1 메모리 인터페이스에 연결되고, 상기 제5 메모리 인터페이스는 상기 제2 메모리 인터페이스에 연결되고, 상기 제6 메모리 인터페이스는 상기 제3 메모리 인터페이스에 연결되고, 및 상기 제7 메모리 인터페이스는 상기 제8 메모리 인터페이스에 연결되고,
    상기 트리플 액세스 인터페이스는 상기 CPU가 상기 싱글 포트 SRAM과의 DMA 트랜잭션 동안에 상기 싱글 포트 SRAM과의 판독-수정-기록 트랜잭션을 수행하도록 하는 싱글 포트 SRAM의 대역폭 공유 장치.
KR1020107014531A 2008-03-05 2009-03-03 적어도 하나의 dma 주변장치 및 직각위상 클록으로 동작하는 cpu 사이의 싱글 포트 sram의 대역폭 공유 KR101380364B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/042,440 US7739433B2 (en) 2008-03-05 2008-03-05 Sharing bandwidth of a single port SRAM between at least one DMA peripheral and a CPU operating with a quadrature clock
US12/042,440 2008-03-05
PCT/US2009/035796 WO2009111423A1 (en) 2008-03-05 2009-03-03 Sharing bandwidth of a single port sram between at least one dma peripheral and a cpu operating with a quadrature clock

Publications (2)

Publication Number Publication Date
KR20100117564A KR20100117564A (ko) 2010-11-03
KR101380364B1 true KR101380364B1 (ko) 2014-04-02

Family

ID=40764118

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020107014531A KR101380364B1 (ko) 2008-03-05 2009-03-03 적어도 하나의 dma 주변장치 및 직각위상 클록으로 동작하는 cpu 사이의 싱글 포트 sram의 대역폭 공유

Country Status (6)

Country Link
US (1) US7739433B2 (ko)
EP (1) EP2250569B1 (ko)
KR (1) KR101380364B1 (ko)
CN (1) CN101911033B (ko)
TW (1) TWI470439B (ko)
WO (1) WO2009111423A1 (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8301820B2 (en) * 2005-03-31 2012-10-30 Stmicroelectronics Belgium N.V. Direct memory access for advanced high speed bus
US8487655B1 (en) * 2009-05-05 2013-07-16 Cypress Semiconductor Corporation Combined analog architecture and functionality in a mixed-signal array
US8699277B2 (en) 2011-11-16 2014-04-15 Qualcomm Incorporated Memory configured to provide simultaneous read/write access to multiple banks
US20140082307A1 (en) * 2012-09-17 2014-03-20 Mobileye Technologies Limited System and method to arbitrate access to memory
CN104598406B (zh) * 2015-02-03 2018-02-09 杭州士兰控股有限公司 扩展功能单元及计算设备扩展系统和扩展方法
CN105635003B (zh) * 2016-01-12 2018-10-23 灵拓智联(厦门)网络科技有限公司 一种基于dma的基带信号处理系统
CN107783915B (zh) * 2016-08-25 2020-07-10 比亚迪股份有限公司 用于mcu的端口复用方法和装置
EP3668615A4 (en) * 2017-09-19 2021-04-28 BAE Systems Controls Inc. SYSTEM AND PROCEDURE FOR MANAGING MULTI-CORE ACCESS TO SHARED PORTS
CN114647604B (zh) * 2022-05-18 2022-10-28 杭州米芯微电子有限公司 Dma数据传输方法、系统、电子设备及可读存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002533982A (ja) 1998-12-18 2002-10-08 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ Cdma通信システムにおいてクロック・ジッタによって生じる位相誤差の補償

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5392412A (en) * 1991-10-03 1995-02-21 Standard Microsystems Corporation Data communication controller for use with a single-port data packet buffer
US6115823A (en) * 1997-06-17 2000-09-05 Amphus, Inc. System and method for task performance based dynamic distributed power management in a computer system and design method therefor
US6035360A (en) * 1997-10-29 2000-03-07 International Business Machines Corporation Multi-port SRAM access control using time division multiplexed arbitration
US6526462B1 (en) * 1999-11-19 2003-02-25 Hammam Elabd Programmable multi-tasking memory management system
EP1132820A3 (en) * 2000-02-04 2003-01-22 Microchip Technology Incorporated Collision detection for dual port RAM operations on a microcontroller
US6769046B2 (en) * 2000-02-14 2004-07-27 Palmchip Corporation System-resource router
US20050091432A1 (en) * 2003-10-28 2005-04-28 Palmchip Corporation Flexible matrix fabric design framework for multiple requestors and targets in system-on-chip designs
US20050177674A1 (en) * 2004-02-11 2005-08-11 Infineon Technologies, Inc. Configurable embedded processor
US20060010260A1 (en) * 2004-07-07 2006-01-12 Fung Hon C Direct memory access (DMA) controller and bus structure in a master/slave system
JP2006099214A (ja) * 2004-09-28 2006-04-13 Toshiba Tec Corp 共有メモリアクセス制御装置
US20060155893A1 (en) * 2004-12-09 2006-07-13 International Business Machines Corporation Methods and apparatus for sharing memory bandwidth
US20060282588A1 (en) * 2005-06-09 2006-12-14 Jonah Proujansky-Bell Processor system that allows for simultaneous access by multiple requestors to a target with multiple ports
US7391664B2 (en) * 2006-04-27 2008-06-24 Ovonyx, Inc. Page mode access for non-volatile memory arrays

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002533982A (ja) 1998-12-18 2002-10-08 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ Cdma通信システムにおいてクロック・ジッタによって生じる位相誤差の補償

Also Published As

Publication number Publication date
TW201007463A (en) 2010-02-16
EP2250569A1 (en) 2010-11-17
CN101911033B (zh) 2013-07-31
US20090228616A1 (en) 2009-09-10
US7739433B2 (en) 2010-06-15
KR20100117564A (ko) 2010-11-03
TWI470439B (zh) 2015-01-21
CN101911033A (zh) 2010-12-08
EP2250569B1 (en) 2014-05-07
WO2009111423A1 (en) 2009-09-11

Similar Documents

Publication Publication Date Title
KR101380364B1 (ko) 적어도 하나의 dma 주변장치 및 직각위상 클록으로 동작하는 cpu 사이의 싱글 포트 sram의 대역폭 공유
EP2568389B1 (en) Coherence switch for i/o traffic
JP5102789B2 (ja) 半導体装置及びデータプロセッサ
JP6761870B2 (ja) 低電力メモリのスロットリング
JP4198376B2 (ja) バスシステム及びバスシステムを含む情報処理システム
Ahmed et al. Design and implementation of a direct memory access controller for embedded applications
KR100395383B1 (ko) 데이터 전송 장치
US20140085320A1 (en) Efficient processing of access requests for a shared resource
US20070260791A1 (en) Data processing device
US8922571B2 (en) Display pipe request aggregation
US7913013B2 (en) Semiconductor integrated circuit
US20150177816A1 (en) Semiconductor integrated circuit apparatus
JP4902640B2 (ja) 集積回路、及び集積回路システム
US5627968A (en) Data transfer apparatus which allows data to be transferred between data devices without accessing a shared memory
JP2001282704A (ja) データ処理装置及びデータ処理方法とデータ処理システム
KR101022473B1 (ko) 다층 버스 시스템에서의 메모리 뱅크 인터리빙 방법 및장치
JP2002149591A (ja) プロセッサ・ローカル・バス・システムでのバス最適化の方法および装置
US20120011295A1 (en) Method and apparatus for wireless broadband systems direct data transfer
US11157206B2 (en) Multi-die system capable of sharing non-volatile memory
JP2004194014A (ja) バス制御装置及び情報処理システム
US20110055446A1 (en) Semiconductor integrated circuit device
US9268722B1 (en) Sharing memory using processor wait states
US11914536B2 (en) Device and method for sharing resource via bus
JP3818621B2 (ja) バスブリッジ回路およびデータ処理システム
JP2010140440A (ja) バス調停装置

Legal Events

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

Payment date: 20170317

Year of fee payment: 4