KR101861769B1 - 비동기식 브릿지 및 이의 동작 방법, 및 이를 포함하는 SoC - Google Patents

비동기식 브릿지 및 이의 동작 방법, 및 이를 포함하는 SoC Download PDF

Info

Publication number
KR101861769B1
KR101861769B1 KR1020110123872A KR20110123872A KR101861769B1 KR 101861769 B1 KR101861769 B1 KR 101861769B1 KR 1020110123872 A KR1020110123872 A KR 1020110123872A KR 20110123872 A KR20110123872 A KR 20110123872A KR 101861769 B1 KR101861769 B1 KR 101861769B1
Authority
KR
South Korea
Prior art keywords
read
memory
outputting
valid
address
Prior art date
Application number
KR1020110123872A
Other languages
English (en)
Other versions
KR20130057899A (ko
Inventor
정법철
윤재근
홍수완
이재곤
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020110123872A priority Critical patent/KR101861769B1/ko
Priority to US13/617,734 priority patent/US9183170B2/en
Publication of KR20130057899A publication Critical patent/KR20130057899A/ko
Application granted granted Critical
Publication of KR101861769B1 publication Critical patent/KR101861769B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/405Coupling between buses using bus bridges where the bridge performs a synchronising function

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Communication Control (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

본 발명에 따른 비동기식 브릿지는, 마스터 IP로부터 전송되는 라이트 유효 신호 및 입력 데이터를 수신하고, 상기 라이트 유효 신호에 기초하여 생성되는 라이트 어드레스를 출력하고, 상기 라이트 어드레스에 기초하여 상기 입력 데이터를 다수의 메모리 셀에 순차적으로 저장하고, 리드 어드레스에 기초하여 상기 저장된 데이터를 순차적으로 출력하는 송신부; 및 슬레이브 IP로부터 전송되는 리드 준비 신호를 수신하고, 상기 라이트 어드레스 및 상기 리드 어드레스에 기초하여 상기 다수의 메모리 셀의 유효성 여부를 판단하고, 상기 판단 결과에 기초하여 리드 유효 신호 및 데이터를 출력하는 수신부를 포함한다.

Description

비동기식 브릿지 및 이의 동작 방법, 및 이를 포함하는 SoC{ASYNCHRONOUS BRIDGE, METHOD OF OPERATING THE SAME, AND SYSTEM ON CHIP HAVING THE SAME}
본 발명은 비동기식 브릿지에 관한 것으로, 보다 구체적으로는 크리티컬 패스(critical path)의 발생을 방지할 수 있는 비동기식 브릿지 및 이의 동작 방법, 및 이를 포함하는 SoC에 관한 것이다.
SoC(System on Chip)는 기존의 여러 가지 기능을 가진 복잡한 시스템을 하나의 시스템으로 구현한 기술집약적 반도체 기술이다. SoC의 현실화를 위해 많은 기술이 연구되고 있으며 특히 칩 내에 내재되어 있는 여러 지능소자(Intellectual Properties: 이하 IP)들을 연결하는 방안이 매우 중요한 사항으로 대두되고 있다.
일반적으로 상기 SoC는 시스템 전체를 제어하는 프로세서와 그 프로세서에 의해서 제어되는 다양한 IP로 구성된다. 여기서, IP라 함은 SoC에 집적될 수 있는 회로(circuit), 로직(logic), 또는 이들의 조합을 의미한다. 또한, 상기 회로 또는 상기 로직에는 코드(code)가 저장될 수 있다.
예컨대, IP는 CPU(central processing unit), 상기 CPU에 포함된 복수의 코어들(cores) 각각, MFC(multi-Format Codec), 비디오 모듈(예컨대, 카메라 인터페이스(camera interface), JPEG(Joint Photographic Experts Group) 프로세서, 비디오 프로세서(video processor), 또는 믹서(mixer), 등), 3D 그래픽 코어(graphic core), 오디오 시스템(audio system), 드라이버(driver), 디스플레이 드라이버 (display driver), 휘발성 메모리(volatile memory device), 비휘발성 메모리(non-volatile memory), 메모리 컨트롤러(memory controller), 또는 캐시 메모리(cache memory) 등을 포함할 수 있다.
상기 IP는 프로세서의 제어를 받기만 하는 슬레이브(slave) IP와 스스로 다른 슬레이브 IP에 데이터 통신을 요구할 수 있는 마스터(master) IP로 구분된다. 경우에 따라서는 하나의 IP가 슬레이브와 마스터 기능을 겸할 수도 있다.
또한, IP들은 서로 다른 클록 주파수(clock frequency)를 갖기 때문에 하나의 SoC내에는 다양한 클록 도메인(clock domain)이 사용되고 있다. 이때, 서로 다른 클록 도메인을 갖는 IP들 사이에는 데이터 교환을 필요로 하게 되며, IP들 간의 거리가 멀어짐에 따라 크리티컬 패스(critical path)가 발생하여 타이밍 클로징(timing closing)에 어려움이 있으므로, 이를 위해 크리티컬 패스의 발생을 방지할 필요가 있다.
따라서, 본 발명이 이루고자 하는 기술적인 과제는 크리티컬 패스(critical path)의 발생을 방지할 수 있는 비동기식 브릿지 및 이의 동작 방법, 및 이를 포함하는 SoC를 제공하는 것이다.
본 발명의 실시예에 따른 비동기식 브릿지는, 마스터 IP(Intellectual Properties)로부터 전송되는 라이트 유효 신호 및 입력 데이터를 수신하고, 상기 라이트 유효 신호에 기초하여 생성되는 라이트 어드레스를 출력하고, 상기 라이트 어드레스에 기초하여 상기 입력 데이터를 다수의 메모리 셀에 순차적으로 저장하고, 리드 어드레스에 기초하여 상기 저장된 데이터를 순차적으로 출력하는 송신부; 및 슬레이브 IP로부터 전송되는 리드 준비 신호를 수신하고, 상기 라이트 어드레스 및 상기 리드 어드레스에 기초하여 상기 다수의 메모리 셀의 유효성 여부를 판단하고, 상기 판단 결과에 기초하여 리드 유효 신호 및 데이터를 출력하는 수신부를 포함한다.
상기 송신부는, 상기 마스터 IP로부터 전송된 상기 라이트 유효 신호에 기초하여 라이트 어드레스를 카운팅하고, 상기 카운팅 결과에 대응하는 라이트 어드레스를 출력하는 라이트 어드레스 제어부; 상기 출력된 라이트 어드레스에 기초하여 상기 입력 데이터를 선택적으로 출력하는 제1 선택기; 각각이 상기 다수의 메모리 셀을 포함하고, 상기 제1 선택기로부터 출력되는 상기 입력 데이터를 상기 다수의 메모리 셀 각각에 순차적으로 저장하는 적어도 둘 이상의 메모리 그룹; 및 상기 리드 어드레스에 기초하여 상기 저장된 입력 데이터를 선택적으로 출력하며, 상기 적어도 둘 이상의 메모리 그룹 각각에 대응하는 적어도 둘 이상의 선택기를 포함한다.
상기 수신부는, 상기 슬레이브 IP로부터 전송된 상기 리드 준비 신호 및 상기 리드 유효 신호에 기초하여 상기 적어도 둘 이상의 메모리 그룹 중 하나의 메모리 그룹을 선택하기 위한 글로벌 리드 어드레스를 카운팅하고, 상기 카운팅 결과에 대응하는 글로벌 리드 어드레스를 순차적으로 출력하는 글로벌 리드 어드레스 제어부; 상기 라이트 어드레스 및 상기 글로벌 리드 어드레스를 비교하고, 상기 비교 결과에 기초하여 상기 적어도 둘 이상의 메모리 그룹 각각의 유효성 여부를 판단하고, 판단 결과를 출력하는 판단부; 및 상기 선택된 메모리 그룹에 대응하는 리드 준비 신호 및 상기 유효성 여부 판단 결과에 기초하여 상기 선택된 메모리 그룹에 포함된 메모리 셀들을 순차적으로 선택하기 위한 로컬 리드 어드레스를 출력하는 로컬 리드 어드레스 제어부를 포함한다.
상기 판단부는, 상기 판단 결과, 메모리 그룹에 유효성이 있는 경우 유효한 리드 유효 신호를 출력함과 동시에 상기 메모리 그룹에 대응하는 메모리 셀에 저장된 데이터를 상기 슬레이브 IP 및 상기 글로벌 리드 어드레스 제어부로 출력하고, 상기 판단 결과, 메모리 그룹에 유효성이 없는 경우 유효하지 않은 리드 유효 신호를 상기 슬레이브 IP 및 상기 글로벌 리드 어드레스 제어부로 출력한다.
상기 판단부는, 상기 라이트 어드레스 및 상기 글로벌 리드 어드레스에 기초하여 이에 대응하는 메모리 그룹에 포함된 메모리 셀들의 데이터의 유효성 여부를 판단하고, 상기 판단 결과를 출력하는 판단 로직; 및 상기 판단 로직의 출력신호를 래치하고, 상기 래치된 신호를 상기 리드 유효 신호로서 출력하는 래치부를 포함한다.
상기 래치부는, 적어도 하나 이상의 플립-플롭(flip-flop)을 포함하며, 상기 적어도 둘 이상의 메모리 그룹의 수가 k(k는 2 이상의 정수)개인 경우, 상기 적어도 하나 이상의 플립-플롭은 k-1개로 구성된다.
상기 로컬 리드 어드레스 제어부는, 상기 적어도 둘 이상의 메모리 그룹들 각각에 대응하는 상기 리드 준비 신호 및 상기 리드 유효 신호를 비교하고, 상기 비교 결과를 출력하는 연산 로직; 및 상기 연산 로직으로부터 출력되는 소정의 출력 값에 대해서만 입력 값을 출력하는 제1 플립-플롭을 포함한다.
본 발명의 실시예에 따른 적어도 둘 이상의 메모리 그룹을 포함하는 비동기식 브릿지의 동작 방법은, 마스터 IP로부터 전송되는 라이트 유효 신호 및 입력 데이터를 수신하는 단계; 상기 라이트 유효 신호에 기초하여 카운팅되는 라이트 어드레스를 출력하고, 상기 라이트 어드레스에 기초하여 상기 입력 데이터를 상기 적어도 둘 이상의 메모리 그룹에 포함된 다수의 메모리 셀 각각에 순차적으로 저장하는 단계; 및 상기 라이트 어드레스 및 글로벌 리드 어드레스에 기초하여 상기 적어도 둘 이상의 메모리 그룹 각각의 유효성 여부를 판단하는 단계를 포함한다.
본 발명의 실시예에 따른 비동기식 브릿지의 동작 방법은 컴퓨터로 읽을 수 있는 기록 매체에 저장된 상기 비동기식 브릿지의 동작 방법을 실행하기 위한 컴퓨터 프로그램을 실행함으로써 구현될 수 있다.
본 발명의 실시예에 따른 SoC(System on Chip)는, 마스터 IP; 슬레이브 IP; 및 상기 마스터 IP와 상기 슬레이브 IP 사이의 데이터를 송수신하는 비동기식 브릿지를 포함하며, 상기 비동기식 브릿지는, 상기 마스터 IP로부터 전송되는 라이트 유효 신호 및 입력 데이터를 수신하고, 상기 라이트 유효 신호에 기초하여 생성되는 라이트 어드레스를 출력하고, 상기 라이트 어드레스에 기초하여 상기 입력 데이터를 다수의 메모리 셀에 순차적으로 저장하고, 리드 어드레스에 기초하여 상기 저장된 데이터를 순차적으로 출력하는 송신부; 및 상기 슬레이브 IP로부터 전송되는 리드 준비 신호를 수신하고, 상기 라이트 어드레스 및 상기 리드 어드레스에 기초하여 상기 다수의 메모리 셀의 유효성 여부를 판단하고, 상기 판단 결과에 기초하여 리드 유효 신호 및 데이터를 출력하는 수신부를 포함한다.
본 발명의 비동기식 브릿지 및 이의 동작 방법, 및 이를 포함하는 SoC에 따르면 멀티-사이클 패스(multi-cycle path)를 이용하여 크리티컬 패스(critical path)의 발생을 방지할 수 있기 때문에 타이밍 클로징(timing closing)을 용이하게 할 수 있으며, 네거티브 슬랙(negative slack)을 제거할 수 있다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 간단한 설명이 제공된다.
도 1은 본 발명의 일 실시예에 따른 SoC(System on Chip)의 블록도이다.
도 2는 도 1에 도시된 비동기식 브릿지의 구조를 개략적으로 나타내는 도면이다.
도 3은 도 2에 도시된 비동기식 브릿지의 구조를 상세하게 나타내는 도면이다.
도 4는 도 3에 도시된 판단 로직을 설명하기 위한 도면이다.
도 5는 본 발명의 비교예에 따른 비동기식 브릿지가 데이터를 송수신하는 방법을 설명하기 위한 타이밍도이다.
도 6은 본 발명의 일 실시예에 따른 비동기식 브릿지가 데이터를 송수신하는 방법을 설명하기 위한 타이밍도이다.
도 7은 본 발명의 일 실시예에 따른 비동기식 브릿지의 동작 방법을 설명하기 위한 흐름도이다.
도 8은 도 1에 도시된 SoC를 포함하는 반도체 시스템의 일 실시예를 나타낸다.
도 9는 도 1에 도시된 SoC를 포함하는 컴퓨터 시스템의 일 실시예를 나타낸다.
도 10은 도 1에 도시된 SoC를 포함하는 컴퓨터 시스템의 다른 실시예를 나타낸다.
도 11은 도 1에 도시된 SoC를 포함하는 컴퓨터 시스템의 또 다른 실시예를 나타낸다.
본 명세서 또는 출원에 개시되어 있는 본 발명의 실시 예들에 대해서 특정한 구조적 내지 기능적 설명들은 단지 본 발명에 따른 실시 예를 설명하기 위한 목적으로 예시된 것으로, 본 발명에 따른 실시 예들은 다양한 형태로 실시될 수 있으며 본 명세서 또는 출원에 설명된 실시 예들에 한정되는 것으로 해석되어서는 아니 된다.
본 발명에 따른 실시 예는 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있으므로 특정실시 예들을 도면에 예시하고 본 명세서 또는 출원에 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예를 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1 및/또는 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기구성 요소들은 상기용어들에 의해 한정되어서는 안된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미이다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미인 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시 예를 설명함으로써, 본 발명을 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.
도 1은 본 발명의 일 실시예에 따른 SoC(System on Chip)의 블록도이다. 도 1을 참조하면, SoC(10)는 시스템 버스(20), 다수의 클럭 도메인(30-1, 30-2, 30-3, 30-4, 및 30-5) 및 다수의 비동기식 브릿지(100a, 100b, 100c, 100d, 및 100e)를 포함한다. SoC(10)는 단일의 칩으로 제조되어 하나의 패키지(package)로 구현될 수 있다. 도 1에서는 설명의 편의를 위하여 5개의 클럭 도메인과 5개의 비동기식 브릿지를 포함하는 SoC(10)가 도시되었으나, 이에 한정되는 것은 아니다.
시스템 버스(20)는 SoC(10)의 구성 요소들 사이에 채널을 제공한다.
다수의 클럭 도메인(30-1, 30-2, 30-3, 30-4, 및 30-5) 각각은 서로 다른 동작 주파수를 사용하는 영역으로, 적어도 하나 이상의 IP들(Intellectual Properties)을 포함한다. 즉, 하나의 클럭 도메인에 포함된 적어도 하나 이상의 IP들은 동일한 동작 주파수에 의해 동작하게 된다.
다수의 비동기식 브릿지(100a, 100b, 100c, 100d, 및 100e) 각각은 서로 다른 동작 주파수를 사용하는 클럭 도메인들 사이의 데이터를 교환하기 위한 연결 수단이다.
SoC(10)는 집적 회로(integrate circuit)로 구현될 수 있다. 또한, SoC(10)는 이동 전화기(mobile phone), 스마트폰(smart phone), 태블릿 PC(tablet personal computer), 또는 PDA(personal digital assistant)와 같은 이동 통신 장치 내에 내장(embedded)될 수 있다. 실시 예에 따라 SoC(10)는 IT 장치(information technology device) 또는 휴대용 전자 장치(portable electronic device)에 내장될 수 있다.
도 2는 도 1에 도시된 비동기식 브릿지의 구조를 개략적으로 나타내는 도면이다. 도 2를 참조하면, 마스터 IP(110)와 슬레이브 IP(120) 사이의 데이터를 교환하기 위한 비동기식 브릿지(100)는 송신부(200) 및 수신부(300)를 포함한다. 이때, 송신부(200)와 수신부(300)는 서로 다른 클럭 신호에 의해 동작하는 영역일 수 있다.
송신부(200)는 라이트 어드레스 제어부(210), 제1 선택기(220), 제1 내지 제4 메모리 그룹(230~260), 제2 내지 제5 선택기(239, 249, 259, 269), 제1 도메인 변환부(270) 및 라이트 판단부(280)를 포함한다. 또한, 수신부(300)는 글로벌 리드 어드레스 제어부(310), 제2 도메인 변환부(320), 판단부(330), 로컬 리드 어드레스 제어부(340) 및 제6 내지 제8 선택기(350~370)를 포함한다.
본 발명의 실시 예에서는 제1 선택기(220), 제2 내지 제5 선택기(239, 249, 259, 269) 및 제6 내지 제8 선택기(350~370)가 멀티플렉서 및 디멀티플렉서로 구현된 예를 도시하나, 이에 한정되지 않는다.
마스터 IP(110)는 라이트 유효 신호(WV) 및 그에 대응하는 입력 데이터(Din) 각각을 라이트 어드레스 제어부(210) 및 제1 선택기(220)로 전송한다.
라이트 어드레스 제어부(210)는 마스터 IP(110)로부터 전송되는 라이트 유효 신호(WV)에 기초하여 제1 내지 제4 메모리 그룹(230~260)에 대응하는 라이트 어드레스를 카운팅하고, 카운팅 결과에 대응하는 라이트 어드레스(WA)를 출력한다.
이때, 라이트 어드레스 제어부(210)는 라이트 유효 신호(WV)를 수신하여 제1 선택기(220)를 제어하기 위한 그레이 코드(gray code) 또는 이진 코드(binary code)를 생성한다. 이를 위해, 라이트 어드레스 제어부(210)는 그레이 코드를 이진 코드로 변환하거나 이진 코드를 그레이 코드로 변환하기 위한 코드 변환부(미도시)를 더 구비할 수 있다.
제1 선택기(220)는 라이트 어드레스 제어부(210)로부터 출력되는 라이트 어드레스(WA)에 기초하여 라이트 유효 신호(WV)에 대응하는 입력 데이터(Din)를 제1 내지 제4 메모리 그룹(230~260)으로 선택적으로 출력한다.
제1 내지 제4 메모리 그룹(230~260)은 다수의 메모리 셀(D0~D15)을 포함하고, 제1 선택기(220)로부터 출력되는 데이터(Din)들을 다수의 메모리 셀(D0~D15)에 순차적으로 저장한다. 예컨대, 제1 내지 제4 메모리 그룹(230~260)은 입력되는 데이터(Din)들을 제1 메모리 셀(D0)에서부터 제16 메모리 셀(D15)까지 순차적으로 저장할 수 있다. 이때, 다수의 메모리 셀(D0~D15) 각각은 128 비트의 데이터를 송수신하기 위해 128개의 플립-플롭(flip-flop)으로 구성될 수 있으나, 이에 한정되는 것은 아니다.
제2 내지 제5 선택기(239, 249, 259, 269)는 제1 내지 제4 메모리 그룹(230~260) 각각에 대응하도록 구성되며, 로컬 리드 어드레스(LRA0~LRA3)에 기초하여 제1 내지 제4 메모리 그룹(230~260)에 포함된 다수의 메모리 셀(D0~D15)에 저장된 데이터를 선택적으로 출력한다.
본 명세서에서는 비동기식 브릿지(100)가 4-사이클 멀티 패스(4-cycle multi path)로 구현된 일 예를 설명하기 위해, 송신부(200)가 4개의 메모리 그룹(230 내지 260)으로 구현된 예를 도시하였으나, 이에 한정되는 것은 아니다. 예컨대, 송신부(200)에 포함된 메모리 그룹은 데이터 전달 경로에 따라 k(k는 2 이상의 정수)-사이클 멀티 패스로 구현될 수 있으며, 이를 위해, k개의 메모리 그룹을 포함할 수 있다.
제1 도메인 변환부(270)는 서로 다른 동작 주파수를 갖는 도메인(domain) 사이에 전송되는 신호를 안정화시켜주기 위한 것으로, 수신부(300)로부터 전송되는 신호를 송신부(200)에 대응하는 신호로 안정화시킬 수 있다. 이를 위해, 제1 도메인 변환부(270)는 송신부(200)의 동작 주파수의 크기에 기초하여 적어도 하나 이상의 플립-플롭으로 구현될 수 있다.
라이트 판단부(280)는 라이트 어드레스 제어부(210)로부터 출력되는 라이트 어드레스(WA) 및 글로벌 리드 어드레스(GRA)에 기초하여 다수의 메모리 셀(D0~D15)에 데이터를 라이트할 수 있는지 여부를 판단하고, 판단 결과에 대응하는 라이트 준비 신호(WR)를 마스터 IP(110)로 출력할 수 있다.
그러면, 마스터 IP(110)는 라이트 판단부(280)로부터 출력되는 라이트 준비 신호(WR)에 기초하여 다수의 메모리 셀(D0~D15)에 데이터를 저장할 수 있는지 여부를 판단할 수 있으며, 판단 결과에 기초하여 데이터를 전송할 수 있게 된다.
다음으로, 수신부(300)에 대하여 살펴보면, 글로벌 리드 어드레스 제어부(310)는 슬레이브 IP(120)로부터 전송되는 리드 준비 신호(RR) 및 리드 유효 신호(RV)에 기초하여 제1 내지 제4 메모리 그룹(230~260) 중 하나의 메모리 그룹을 선택하기 위한 글로벌 리드 어드레스(GRA)를 카운팅하고, 카운팅 결과에 대응하는 글로벌 리드 어드레스(GRA)를 순차적으로 출력한다.
이때, 글로벌 리드 어드레스 제어부(310)는 리드 준비 신호(RR)를 수신하여 제6 선택기(350)를 제어하기 위한 그레이 코드(gray code) 또는 이진 코드(binary code)를 생성한다. 이를 위해, 글로벌 리드 어드레스 제어부(310)는 이진 코드를 그레이 코드로 변환하거나 그레이 코드를 이진 코드로 변환하기 위한 코드 변환부(미도시)를 더 구비할 수 있다.
제2 도메인 변환부(320)는 동작 주파수가 다른 도메인인 송신부(200)의 라이트 어드레스 제어부(210)로부터 전송되는 신호를 안정화시켜주기 위한 것으로, 수신부(300)의 동작 주파수의 크기에 기초하여 적어도 하나 이상의 플립-플롭으로 구현될 수 있다.
판단부(330)는 라이트 어드레스 제어부(210)로부터 출력되어 제2 도메인 변환부(320)를 통해 전송된 라이트 어드레스(WA) 및 글로벌 리드 어드레스(GRA)를 비교하고, 비교 결과에 기초하여 제1 내지 제4 메모리 그룹(230~260) 각각의 유효성 여부를 판단하고, 판단 결과를 출력한다. 이를 위해, 판단부(330)는 제1 내지 제4 메모리 그룹(230~260) 각각에 대응하는 제1 내지 제4 판단부(330-1~330-4)를 포함할 수 있다.
로컬 리드 어드레스 제어부(340)는 제1 내지 제4 메모리 그룹(230~260) 각각을 제어하기 위해 제1 내지 제4 로컬 리드 어드레스 제어부(rAddr0~rAddr3; 340-1~340-4)를 포함하며, 리드 준비 신호(RR) 및 리드 유효 신호(RV)에 기초하여 제1 내지 제4 메모리 그룹(230~260) 중 하나의 메모리 그룹에 상응하는 메모리 셀들을 순차적으로 선택하기 위한 로컬 리드 어드레스(LRA0~LRA3)를 출력한다.
이때, 제1 내지 제4 로컬 리드 어드레스 제어부(340-1~340-4) 각각은 제2 내지 제5 선택기(239, 249, 259, 269)를 제어하기 위한 인에이블 신호로써 제1 내지 제4 로컬 리드 어드레스(LRA0~LRA3)를 출력한다.
제6 선택기(350)는 글로벌 리드 어드레스(GRA)에 기초하여 슬레이브 IP(120)로부터 입력되는 리드 준비 신호(RR)를 제1 내지 제4 로컬 리드 어드레스 제어부(340-1~340-4)로 선택적으로 출력한다.
제7 선택기(360)는 글로벌 리드 어드레스(GRA)에 기초하여 제1 내지 제4 판단부(330-1~330-4)로부터 출력되는 리드 유효 신호(RV)를 슬레이브 IP(120) 및 글로벌 리드 어드레스 제어부(310)로 선택적으로 출력한다.
제8 선택기(370)는 글로벌 리드 어드레스(GRA)에 기초하여 제2 내지 제5 선택기(239, 249, 259, 269)로부터 출력되는 데이터를 슬레이브 IP(120)로 선택적으로 출력한다.
도 3은 도 2에 도시된 비동기식 브릿지의 구조를 상세하게 나타내는 도면이다. 도 3에서는 본 발명의 실시예에 따른 제1 내지 제4 메모리 그룹(230~260) 중 제1 메모리 그룹(230)에 대응하는 동작만을 도시하였다.
도 1 내지 도 3을 참조하면, 마스터 IP(110)는 라이트 유효 신호(WV) 및 입력 데이터(Din)를 각각 라이트 어드레스 제어부(210) 및 제1 선택기(220)로 전송한다. 라이트 어드레스 제어부(210)는 라이트 유효 신호(WV)에 기초하여 제1 메모리 그룹(230)에 포함된 메모리 셀들(D0, D4, D8, D12)에 대응하는 라이트 어드레스(WA)를 카운팅하여 출력한다.
제1 선택기(220)는 라이트 어드레스(WA)에 기초하여 입력 데이터(Din)를 선택적으로 출력하고, 제1 메모리 그룹(230)은 제1 선택기(220)로부터 출력되는 데이터를 라이트 어드레스(WA)에 대응하는 메모리 셀에 저장한다.
글로벌 리드 어드레스 제어부(310)는 슬레이브 IP(120)로부터 전송되는 리드 준비 신호(RR) 및 리드 유효 신호(RV)에 기초하여 제1 내지 제4 메모리 그룹(230~260) 중 하나의 메모리 그룹을 선택하기 위한 글로벌 리드 어드레스(GRA)를 카운팅하여 순차적으로 출력한다.
제1 판단부(330-1)는 판단 로직(331-1) 및 래치부(333-1)를 포함한다. 판단 로직(331-1)은 라이트 어드레스(WA) 및 글로벌 리드 어드레스(GRA)에 기초하여 제1 메모리 그룹(230)의 유효성 여부를 판단하고, 판단 결과를 출력한다.
이를 위한, 판단 로직(331-1)에 의해 유효성 여부를 판단하는 방법의 일 예가 도 4에 도시되어 있다.
도 4는 도 3에 도시된 판단 로직을 설명하기 위한 도면이다. 도 4에서는 도 2 및 도 3에 도시된 제1 메모리 그룹(230)에 대응하는 판단 로직(331-1)의 동작만을 도시하였다. 도 4를 설명하기에 앞서, 'me'는 제1 메모리 그룹(230)에 대응하는 알고리즘임을 나타내고, 'read address'는 글로벌 리드 어드레스 제어부(310)가 현재 리드하고자 하는 글로벌 리드 어드레스(GRA) 지점을 나타낸다.
판단 로직(331-1)은 하기와 같은 수학식들에 의해 제1 메모리 그룹(230)의 유효성 여부를 판단할 수 있다.
[수학식 1]
(제1 메모리 그룹의 어드레스) + ~(현재 글로벌 리드 어드레스) + 1
[수학식 2]
(라이트 어드레스) + ~(리드 어드레스) + 1
수학식 1은 제1 메모리 그룹(230)의 유효성 여부를 판단하기 위해 필요한 데이터의 개수를 산출하고, 수학식 2는 제1 내지 제4 메모리 그룹(230~260)내에 리드할 수 있는 메모리 셀의 개수를 산출한다. 이때, 수학식 1 및 수학식 2는 2 비트(bit)값의 라이트 어드레스 및 리드 어드레스를 이용하여 연산이 이루어질 수 있다.
예컨대, 도 4에 도시된 알고리즘에 수학식 1을 적용하면, 제1 메모리 그룹(230)의 어드레스인 "00" 및 현재 글로벌 리드 어드레스(GRA)인 "10"의 니게이션(negation) 값인 "01"을 합산한 결과인 "01"에 "01"을 다시 합산하면, "10"의 값이 산출되며, 산출된 결과에 기초하여 제1 메모리 그룹(230)의 유효성 여부를 판단하기 위해서는 순차적으로 제3 메모리 그룹(250), 제4 메모리 그룹(260) 및 제1 메모리 그룹(230)의 데이터를 필요로 함을 알 수 있다.
또한, 수학식 2에 의해 리드할 수 있는 메모리 셀의 개수를 산출하기 위해서는, 예컨대, 현재의 글로벌 리드 어드레스인 제3 메모리 그룹(250)에 포함된 메모리 셀들 중 하나의 메모리 셀(예컨대, D6)을 리드할 때, 라이트 어드레스에 대응하는 메모리 셀이 D9인 경우, "1001" 및 "0110"의 니게이션(negation) 값인 "1001"을 합산한 결과인 "0010"에 "0001"을 다시 합산하면, "0011"의 값이 산출되며, 리드 가능한 메모리 셀이 3개 더 있음을 나타낸다.
따라서, 수학식 1 및 수학식 2의 산출 결과에 기초하여, 수학식 2에 의해 산출된 값이 수학식 1에 의해 산출된 값보다 큰 경우, 제1 메모리 그룹(230)은 유효성이 있는 것으로 판단될 수 있다. 즉, 제1 메모리 그룹(230)에는 리드할 수 있는 데이터가 저장되어 있는 것으로 판단될 수 있다.
다시 도 3을 참조하면, 판단 로직(331-1)은 제1 메모리 그룹(230)의 유효성 여부를 판단한 결과, 제1 메모리 그룹(230)에 유효성이 있는 것으로 판단된 경우 유효한 리드 유효 신호(valid0)를 출력하거나, 제1 메모리 그룹(230)에 유효성이 없는 것으로 판단된 경우 유효하지 않은 리드 유효 신호(valid0)를 출력할 수 있다.
예컨대, 판단 로직(331-1)에 의해 제1 메모리 그룹(230)에 유효성이 있는 것으로 판단된 경우 '1'값의 유효한 신호를 리드 유효 신호(valid0)로써 출력할 수 있고, 제1 메모리 그룹(230)에 유효성이 없는 것으로 판단된 경우 '0'값의 유효하지 않은 신호를 리드 유효 신호(valid0)로써 출력할 수 있다.
래치부(333-1)는 판단 로직(331-1)의 출력신호를 래치하고, 래치된 신호를 연산 로직(341-1) 및 제7 선택기(360)로 출력한다. 래치부(333-1)는 적어도 하나 이상의 플립-플롭으로 구현될 수 있으며, 래치부(333-1)를 구성하고 있는 플립-플롭은 별도의 인에이블 신호를 필요로 하지 않고, 항상 인에이블 되어 있는 플립-플롭일 수 있다.
이때, 비동기식 브릿지(100)가 4-사이클 멀티 패스(4-cycle multi path)로 구현된 본 발명의 실시 예에 있어서, 래치부(333-1)는 제1 메모리 그룹(230)으로부터 전송된 데이터가 3-사이클 동안 안정화된 이후 유효 신호(valid0)가 출력될 수 있도록 3개의 플립-플롭을 이용하여 구현될 수 있다. 즉, 비동기식 브릿지(100)에 구비된 메모리 그룹의 수가 k(k는 2 이상의 정수)개인 경우, 래치부는 k-1개의 플립-플롭을 이용하여 구성될 수 있다.
제1 로컬 리드 어드레스 제어부(340-1)는 연산 로직(341-1), 플립-플롭(343-1) 및 가산기(345-1)를 포함한다.
연산 로직(341-1)은 제1 리드 준비 신호(ready0) 및 제1 리드 유효 신호(valid0)를 연산하고, 연산 결과를 출력한다. 이때, 연산 로직(341-1)은 AND 게이트로 구현될 수 있으나, 이에 한정되는 것은 아니다.
플립-플롭(343-1)은 연산 로직(341-1)으로부터 출력되는 출력 값이 '1'인 경우에만 인에이블 되며, 가산기(345-1)는 플립-플롭(343-1)의 이전 출력 신호 값과 '1'을 가산하고, 가산된 결과값을 플립-플롭(343-1)으로 출력한다. 이때, 플립-플롭(343-1) 및 가산기(345-1)는 카운터로써 동작할 수 있으며, 플립-플롭(343-1)이 인에이블 된 경우에만 '1'만큼 카운트된 값이 출력될 수 있다.
즉, 판단 로직(331-1)에 의해 제1 메모리 그룹(230)이 유효성 있는 것으로 판단된 경우 플립-플롭(343-1)이 인에이블 되고, 제2 선택기(239)는 플립-플롭(343-1)으로부터 출력되는 제1 로컬 리드 어드레스(LRA0)에 기초하여 메모리 셀(D0, D4, D8, D12)에 저장된 데이터를 선택적으로 출력하게 된다.
도 5는 본 발명의 비교예에 따른 비동기식 브릿지가 데이터를 송수신하는 방법을 설명하기 위한 타이밍도이고, 도 6은 본 발명의 일 실시예에 따른 비동기식 브릿지가 데이터를 송수신하는 방법을 설명하기 위한 타이밍도이다.
도 5를 참조하면, 그룹화되지 않은 다수의 메모리 셀(D0~D15)에 저장된 데이터(data)를 슬레이브 IP(120)로 출력하는 경우 각각의 메모리 셀에 저장된 데이터를 차례로 출력하게 되므로, 데이터들 사이에 버블(bubble)이 발생하게 되며, 다수의 메모리 셀(D0~D15)에 저장된 모든 데이터를 출력하는데 있어서 데이터 전송 지연이 발생하게 된다.
그러나, 도 6에 도시된 바와 같이 본 발명에 의하면, 다수의 메모리 셀(D0~D15)을 그룹화하여 메모리 그룹 및 메모리 그룹에 대응하는 메모리 셀을 제어함에 따라 다수의 메모리 셀(D0~D15)에 저장된 데이터를 선택적으로 출력하게 되므로, 데이터들 사이의 버블 또는 데이터 전송 지연 없이 데이터들(data0~data3)을 순차적으로 출력할 수 있게 된다.
도 7은 본 발명의 일 실시예에 따른 비동기식 브릿지의 동작 방법을 설명하기 위한 흐름도이다. 도 7에서는, 마스터 IP(110)에서 비동기식 브릿지(100)로 데이터가 계속해서 입력되는 일 예가 도시되어 있으나, 본 발명이 이에 한정되는 것은 아니다.
도 1 내지 도 7을 참조하면, 비동기식 브릿지(100)는 마스터 IP(110)로부터 전송된 라이트 유효 신호(WV) 및 입력 데이터(Din)를 수신한다(S110).
라이트 어드레스 제어부(210)는 라이트 유효 신호(WV)에 기초하여 카운팅되는 라이트 어드레스(WA)를 출력하고, 제1 내지 제4 메모리 그룹(230~260)은 라이트 어드레스(WA)에 기초하여 제1 선택기(220)로부터 출력되는 입력 데이터(Din)를 다수의 메모리 셀(D0~D15) 각각에 순차적으로 저장한다(S120).
판단부(330)는 라이트 어드레스(WA) 및 글로벌 리드 어드레스(GRA)를 비교한다(S130).
판단부(330)는 비교 결과에 기초하여 제1 내지 제4 메모리 그룹(230~260)의 유효성 여부를 판단하고(S140), 메모리 그룹에 유효성이 있는 것으로 판단된 경우 유효한 리드 유효 신호(RV) 및 유효성이 있는 것으로 판단된 메모리 그룹에 대응하는 메모리 셀에 저장된 데이터(Dout)를 슬레이브 IP(120) 및 글로벌 리드 어드레스 제어부(310)로 출력한다(S150).
글로벌 리드 어드레스 제어부(310)는 리드 유효 신호(RV) 및 슬레이브 IP(120)로부터 입력되는 리드 준비 신호(RR)에 기초하여 카운팅되는 글로벌 리드 어드레스를 증가시킨다(S160).
그러나, S140 단계에서의 판단 결과, 메모리 그룹에 유효성이 없는 것으로 판단된 경우 판단부(330)는 유효하지 않은 리드 유효 신호(RV)를 슬레이브 IP(120) 및 글로벌 리드 어드레스 제어부(310)로 출력하고(S170), 글로벌 리드 어드레스 제어부(310)는 리드 유효 신호(RV) 및 슬레이브 IP(120)로부터 입력되는 리드 준비 신호(RR)에 기초하여 카운팅되는 글로벌 리드 어드레스를 증가시킨다(S160).
본 발명의 실시예에 따라, 마스터 IP(110)로부터 데이터가 계속해서 입력되는 경우 상기 데이터들은 제1 내지 제4 메모리 그룹(230~260)에 순차적으로 저장되며, 판단부(330)는 상기 S130 내지 S160 단계를 반복적으로 수행하게 된다.
도 8은 도 1에 도시된 SoC를 포함하는 반도체 시스템의 일 실시예를 나타낸다.
도 8을 참조하면, 반도체 시스템(400)은 도 1에 도시된 SoC(10), 안테나(401), 무선 송수신기(403), 입력 장치(405), 및 디스플레이(407)를 포함한다.
무선 송수신기(403)는 안테나(401)를 통하여 무선 신호를 주거나 받을 수 있다. 예컨대, 무선 송수신기(403)는 안테나(401)를 통하여 수신된 무선 신호를 SoC(10)에서 처리될 수 있는 신호로 변경할 수 있다.
따라서, SoC(10)는 무선 송수신기(403)로부터 출력된 신호를 처리하고 처리된 신호를 디스플레이(407)로 전송할 수 있다. 또한, 무선 송수신기(403)는 SoC(10)로부터 출력된 신호를 무선 신호로 변경하고 변경된 무선 신호를 안테나(401)를 통하여 외부 장치로 출력할 수 있다.
입력 장치(405)는 SoC(10)의 동작을 제어하기 위한 제어 신호 또는 SoC(10)에 의하여 처리될 데이터를 입력할 수 있는 장치로서, 터치 패드(touch pad)와 컴퓨터 마우스(computer mouse)와 같은 포인팅 장치(pointing device), 키패드(keypad), 또는 키보드로 구현될 수 있다.
도 9는 도 1에 도시된 SoC를 포함하는 컴퓨터 시스템의 일 실시예를 나타낸다. 도 9를 참조하면, 도 1에 도시된 SoC(10)를 포함하는 컴퓨터 시스템(500)은 PC(personal computer), 네트워크 서버(Network Server), 태블릿(tablet) PC, 넷-북(net-book), e-리더(e-reader), PDA(personal digital assistant), PMP(portable multimedia player), MP3 플레이어, 또는 MP4 플레이어로 구현될 수 있다.
컴퓨터 시스템(500)은 SoC(10), 메모리 장치(501)와 메모리 장치(501)의 데이터 처리 동작을 제어할 수 있는 메모리 컨트롤러(502), 디스플레이(503) 및 입력 장치(504)를 포함한다.
SoC(10)는 입력 장치(504)를 통하여 입력된 데이터에 따라 메모리 장치(501)에 저장된 데이터를 디스플레이(503)를 통하여 디스플레이할 수 있다. 예컨대, 입력 장치(504)는 터치 패드 또는 컴퓨터 마우스와 같은 포인팅 장치, 키패드, 또는 키보드로 구현될 수 있다. SoC(10)는 컴퓨터 시스템(500)의 전반적인 동작을 제어할 수 있고 메모리 컨트롤러(502)의 동작을 제어할 수 있다.
실시 예에 따라 메모리 장치(501)의 동작을 제어할 수 있는 메모리 컨트롤러(502)는 SoC(10)의 일부로서 구현될 수 있고 또한 SoC(10)와 별도의 칩으로 구현될 수 있다.
도 10은 도 1에 도시된 SoC를 포함하는 컴퓨터 시스템의 다른 실시예를 나타낸다. 도 10을 참조하면, 도 1에 도시된 SoC(10)를 포함하는 컴퓨터 시스템(600)은 이미지 처리 장치(image process device), 예컨대 디지털 카메라 또는 디지털 카메라가 부착된 이동 전화기 또는 스마트 폰으로 구현될 수 있다.
컴퓨터 시스템(600)은 SoC(10), 메모리 장치(601)와 메모리 장치(601)의 데이터 처리 동작, 예컨대 라이트 동작 또는 리드 동작을 제어할 수 있는 메모리 컨트롤러(602)를 포함한다. 또한, 컴퓨터 시스템(600)은 이미지 센서(603) 및 디스플레이(604)를 더 포함한다.
컴퓨터 시스템(600)의 이미지 센서(603)는 광학 이미지를 디지털 신호들로 변환하고, 변환된 디지털 신호들은 SoC(10) 또는 메모리 컨트롤러(602)로 전송된다. SoC(10)의 제어에 따라, 상기 변환된 디지털 신호들은 디스플레이(604)를 통하여 디스플레이되거나 또는 메모리 컨트롤러(602)를 통하여 메모리 장치(601)에 저장될 수 있다.
또한, 메모리 장치(601)에 저장된 데이터는 SoC(10) 또는 메모리 컨트롤러(602)의 제어에 따라 디스플레이(604)를 통하여 디스플레이된다. 실시 예에 따라 메모리 장치(601)의 동작을 제어할 수 있는 메모리 컨트롤러(602)는 SOC(10)의 일부로서 구현될 수 있고 또한 SoC(10)와 별개의 칩으로 구현될 수 있다.
도 11은 도 1에 도시된 SoC를 포함하는 컴퓨터 시스템의 또 다른 실시예를 나타낸다. 도 11을 참조하면, 메모리 시스템(700)은 SSD(solid state drive)와 같은 데이터 처리 장치로 구현될 수 있다.
메모리 시스템(700)은 다수의 메모리 장치들(701), 다수의 메모리 장치들(701) 각각의 데이터 처리 동작을 제어할 수 있는 메모리 컨트롤러(702), DRAM과 같은 휘발성 메모리 장치(703), 메모리 컨트롤러(702)와 호스트(704) 사이에서 주고받는 데이터를 휘발성 메모리 장치(703)에 저장하는 것을 제어하는 SoC(10)를 포함할 수 있다.
본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다.
컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장장치 등이 있다.
또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고 본 발명을 구현하기 위한 기능적인(functional) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술분야의 프로그래머들에 의해 용이하게 추론될 수 있다.
발명은 도면에 도시된 일 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
10: SoC(System on Chip)
100: 비동기식 브릿지(asynchronous bridge)
200: 송신부
210: 라이트 어드레스 제어부
220, 239, 249, 259, 269, 350, 360, 370: 선택기
230, 240, 250, 260: 메모리 그룹들
270: 제1 도메인 변환부
280: 라이트 판단부
300: 수신부
310: 글로벌 리드 어드레스 제어부
320: 제2 도메인 변환부
330: 판단부
340: 로컬 리드 어드레스 제어부

Claims (10)

  1. 마스터 IP(Intellectual Properties)로부터 전송되는 라이트 유효 신호 및 입력 데이터를 수신하고, 상기 라이트 유효 신호에 기초하여 생성되는 라이트 어드레스를 출력하고, 상기 라이트 어드레스에 기초하여 상기 입력 데이터를 다수의 메모리 셀을 포함하는 적어도 둘 이상의 메모리 그룹에 순차적으로 저장하고, 리드 어드레스에 기초하여 상기 저장된 데이터를 순차적으로 출력하는 송신부; 및
    슬레이브 IP로부터 전송되는 리드 준비 신호를 수신하고, 상기 라이트 어드레스 및 상기 리드 어드레스에 기초하여 상기 다수의 메모리 셀의 유효성 여부를 판단하고, 상기 판단 결과에 기초하여 리드 유효 신호 및 데이터를 출력하는 수신부를 포함하며,
    상기 수신부는,
    상기 슬레이브 IP로부터 전송된 상기 리드 준비 신호 및 상기 리드 유효 신호에 기초하여 상기 적어도 둘 이상의 메모리 그룹 중 하나의 메모리 그룹을 선택하기 위한 글로벌 리드 어드레스를 카운팅하고, 상기 카운팅 결과에 대응하는 글로벌 리드 어드레스를 순차적으로 출력하는 글로벌 리드 어드레스 제어부;
    상기 라이트 어드레스 및 상기 글로벌 리드 어드레스를 비교하고, 상기 비교 결과에 기초하여 상기 적어도 둘 이상의 메모리 그룹 각각의 유효성 여부를 판단하고, 판단 결과를 출력하는 판단부; 및
    상기 선택된 메모리 그룹에 대응하는 리드 준비 신호 및 상기 유효성 여부 판단 결과에 기초하여 상기 선택된 메모리 그룹에 포함된 메모리 셀들을 순차적으로 선택하기 위한 로컬 리드 어드레스를 출력하는 로컬 리드 어드레스 제어부를 포함하는 비동기식 브릿지(asynchronous bridge).
  2. 제1항에 있어서, 상기 송신부는,
    상기 마스터 IP로부터 전송된 상기 라이트 유효 신호에 기초하여 라이트 어드레스를 카운팅하고, 상기 카운팅 결과에 대응하는 라이트 어드레스를 출력하는 라이트 어드레스 제어부;
    상기 출력된 라이트 어드레스에 기초하여 상기 입력 데이터를 선택적으로 출력하는 제1 선택기; 및
    상기 리드 어드레스에 기초하여 상기 저장된 입력 데이터를 선택적으로 출력하며, 상기 적어도 둘 이상의 메모리 그룹 각각에 대응하는 적어도 둘 이상의 선택기를 포함하며,
    상기 적어도 둘 이상의 메모리 그룹은 상기 제1 선택기로부터 출력되는 상기 입력 데이터를 상기 다수의 메모리 셀 각각에 순차적으로 저장하는 비동기식 브릿지.
  3. 삭제
  4. 제1항에 있어서, 상기 판단부는,
    상기 판단 결과, 메모리 그룹에 유효성이 있는 경우 유효한 리드 유효 신호를 출력함과 동시에 상기 메모리 그룹에 대응하는 메모리 셀에 저장된 데이터를 상기 슬레이브 IP 및 상기 글로벌 리드 어드레스 제어부로 출력하고,
    상기 판단 결과, 메모리 그룹에 유효성이 없는 경우 유효하지 않은 리드 유효 신호를 상기 슬레이브 IP 및 상기 글로벌 리드 어드레스 제어부로 출력하는 비동기식 브릿지.
  5. 제4항에 있어서, 상기 판단부는,
    상기 라이트 어드레스 및 상기 글로벌 리드 어드레스에 기초하여 이에 대응하는 메모리 그룹에 포함된 메모리 셀들의 데이터의 유효성 여부를 판단하고, 상기 판단 결과를 출력하는 판단 로직; 및
    상기 판단 로직의 출력신호를 래치하고, 상기 래치된 신호를 상기 리드 유효 신호로서 출력하는 래치부를 포함하는 비동기식 브릿지.
  6. 제5항에 있어서, 상기 래치부는,
    적어도 하나 이상의 플립-플롭(flip-flop)을 포함하며,
    상기 적어도 둘 이상의 메모리 그룹의 수가 k(k는 2 이상의 정수)개인 경우, 상기 적어도 하나 이상의 플립-플롭은 k-1개로 구성되는 비동기식 브릿지.
  7. 제1항에 있어서, 상기 로컬 리드 어드레스 제어부는,
    상기 적어도 둘 이상의 메모리 그룹들 각각에 대응하는 상기 리드 준비 신호 및 상기 리드 유효 신호를 비교하고, 상기 비교 결과를 출력하는 연산 로직; 및
    상기 연산 로직으로부터 출력되는 소정의 출력 값에 대해서만 입력 값을 출력하는 제1 플립-플롭을 포함하는 비동기식 브릿지.
  8. 적어도 둘 이상의 메모리 그룹을 포함하는 비동기식 브릿지의 동작 방법에 있어서,
    마스터 IP로부터 전송되는 라이트 유효 신호 및 입력 데이터를 수신하는 단계;
    상기 라이트 유효 신호에 기초하여 카운팅되는 라이트 어드레스를 출력하고, 상기 출력된 라이트 어드레스에 기초하여 상기 입력 데이터를 상기 적어도 둘 이상의 메모리 그룹에 포함된 다수의 메모리 셀 각각에 순차적으로 저장하는 단계;
    슬레이브 IP로부터 전송되는 리드 준비 신호 및 리드 유효 신호에 기초하여 상기 적어도 둘 이상의 메모리 그룹 중 하나의 메모리 그룹을 선택하기 위한 글로벌 리드 어드레스를 카운팅하고, 상기 카운팅 결과에 상응하는 글로벌 리드 어드레스를 순차적으로 출력하는 단계;
    상기 라이트 어드레스 및 상기 글로벌 리드 어드레스를 비교하고, 상기 비교 결과에 기초하여 상기 적어도 둘 이상의 메모리 그룹 각각의 유효성 여부를 판단하는 단계;
    상기 선택된 메모리 그룹에 상응하는 리드 준비 신호 및 상기 유효성 여부 판단 결과에 기초하여 상기 선택된 메모리 그룹에 포함된 메모리 셀들을 순차적으로 선택하기 위한 로컬 리드 어드레스를 출력하는 단계; 및
    상기 로컬 리드 어드레스에 기초하여 상기 저장된 입력 데이터를 선택적으로 출력하는 단계를 포함하는 비동기식 브릿지의 동작 방법.
  9. 제8항에 있어서, 상기 적어도 둘 이상의 메모리 그룹 각각의 유효성 여부를 판단하는 단계 이후에,
    상기 판단 결과에 기초하여 메모리 그룹에 유효성이 있는 경우, 유효한 리드 유효 신호를 출력함과 동시에 상기 메모리 그룹에 대응하는 메모리 셀에 저장된 데이터를 출력하는 단계; 및
    상기 판단 결과에 기초하여 메모리 그룹에 유효성이 없는 경우, 유효하지 않은 리드 유효 신호를 출력하는 단계를 포함하는 비동기식 브릿지의 동작 방법.
  10. 제8항 내지 제9항 중 어느 하나의 항에 기재된 비동기식 브릿지의 동작 방법을 실행하기 위한 코드를 저장하는 컴퓨터로 읽을 수 있는 기록 매체.
KR1020110123872A 2011-11-24 2011-11-24 비동기식 브릿지 및 이의 동작 방법, 및 이를 포함하는 SoC KR101861769B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020110123872A KR101861769B1 (ko) 2011-11-24 2011-11-24 비동기식 브릿지 및 이의 동작 방법, 및 이를 포함하는 SoC
US13/617,734 US9183170B2 (en) 2011-11-24 2012-09-14 Asynchronous bridge

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110123872A KR101861769B1 (ko) 2011-11-24 2011-11-24 비동기식 브릿지 및 이의 동작 방법, 및 이를 포함하는 SoC

Publications (2)

Publication Number Publication Date
KR20130057899A KR20130057899A (ko) 2013-06-03
KR101861769B1 true KR101861769B1 (ko) 2018-05-29

Family

ID=48467849

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110123872A KR101861769B1 (ko) 2011-11-24 2011-11-24 비동기식 브릿지 및 이의 동작 방법, 및 이를 포함하는 SoC

Country Status (2)

Country Link
US (1) US9183170B2 (ko)
KR (1) KR101861769B1 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9304954B2 (en) * 2012-10-24 2016-04-05 Texas Instruments Incorporated Multi processor bridge with mixed Endian mode support
KR101510862B1 (ko) * 2014-04-17 2015-04-09 주식회사 텔레칩스 시스템온칩에서 상이한 도메인의 블록연결을 위한 단일채널 비동기 브리지 시스템
US10013375B2 (en) * 2014-08-04 2018-07-03 Samsung Electronics Co., Ltd. System-on-chip including asynchronous interface and driving method thereof
KR102226284B1 (ko) * 2014-08-04 2021-03-09 삼성전자주식회사 시스템온칩 및 이의 구동 방법
GB201810785D0 (en) 2018-06-29 2018-08-15 Nordic Semiconductor Asa Asynchronous communication
CN109918043B (zh) * 2019-03-04 2020-12-08 上海熠知电子科技有限公司 一种基于虚拟通道的运算单元共享方法和系统
CN112860622B (zh) * 2021-02-08 2022-11-04 山东云海国创云计算装备产业创新中心有限公司 一种处理系统以及一种片上系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000267984A (ja) 1999-03-18 2000-09-29 Nec Saitama Ltd データ処理装置およびデータ処理方法
US20020188905A1 (en) 2001-06-08 2002-12-12 Broadcom Corporation System and method for interleaving data in a communication device
US20050228929A1 (en) * 2004-04-02 2005-10-13 Arm Limited Bridge circuit
US20080256417A1 (en) 2007-04-13 2008-10-16 Rgb Networks, Inc. SDRAM convolutional interleaver with two paths

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US2907004A (en) * 1954-10-29 1959-09-29 Rca Corp Serial memory
US3836891A (en) * 1973-07-05 1974-09-17 Bendix Corp Tape reader system with buffer memory
US4176400A (en) * 1977-08-10 1979-11-27 Teletype Corporation Buffer storage and control
US4463443A (en) * 1979-07-24 1984-07-31 The United States Of America As Represented By The Secretary Of The Air Force Data buffer apparatus between subsystems which operate at differing or varying data rates
FR2536200B1 (fr) * 1982-11-15 1987-01-16 Helen Andre Unite de stockage temporaire de donnees organisee en file d'attente
US4682284A (en) * 1984-12-06 1987-07-21 American Telephone & Telegraph Co., At&T Bell Lab. Queue administration method and apparatus
US4692893A (en) * 1984-12-24 1987-09-08 International Business Machines Corp. Buffer system using parity checking of address counter bit for detection of read/write failures
US4675865A (en) * 1985-10-04 1987-06-23 Northern Telecom Limited Bus interface
US4875206A (en) * 1988-03-31 1989-10-17 American Telephone And Telegraph Comopany, At&T Bell Laboratories High bandwidth interleaved buffer memory and control
US5130984A (en) * 1990-12-18 1992-07-14 Bell Communications Research, Inc. Large fault tolerant packet switch particularly suited for asynchronous transfer mode (ATM) communication
US5335326A (en) * 1992-10-01 1994-08-02 Xerox Corporation Multichannel FIFO device channel sequencer
US5699530A (en) * 1995-10-03 1997-12-16 Intel Corporation Circular RAM-based first-in/first-out buffer employing interleaved storage locations and cross pointers
US5787454A (en) * 1995-12-27 1998-07-28 Intel Corporation Recorder buffer with interleaving mechanism for accessing a multi-parted circular memory array
US6286072B1 (en) * 1997-08-19 2001-09-04 International Business Machines Corporation System and method for synchronizing data communication between asynchronous buses
US6161153A (en) * 1998-07-30 2000-12-12 Micron Technology, Inc. Method for sharing data buffers from a buffer pool
US6614441B1 (en) * 2000-01-07 2003-09-02 Intel Corporation Method and mechanism of automatic video buffer flipping and display sequence management
US6697927B2 (en) * 2001-09-28 2004-02-24 Hewlett-Packard Development Company, L.P. Concurrent non-blocking FIFO array
US7437082B1 (en) * 2002-07-12 2008-10-14 Broadwing Corporation Private optical communications systems, devices, and methods
JP4533890B2 (ja) 2003-05-09 2010-09-01 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 異なるクロックドメイン間でのデータ信号転送のための方法
US7489259B2 (en) * 2006-08-01 2009-02-10 Creative Technology Ltd. Sample rate converter and method to perform sample rate conversion
US7984651B2 (en) * 2006-11-10 2011-07-26 Penrith Corporation Transducer array imaging system
KR20080062979A (ko) 2006-12-30 2008-07-03 삼성전자주식회사 온 칩 버스 시스템에서 레지스터 슬라이싱 장치 및 방법
US8190848B2 (en) * 2008-07-28 2012-05-29 Lantiq Deutschland Gmbh Interleaver memory allocation method and apparatus
US8174912B2 (en) * 2009-09-08 2012-05-08 Lsi Corporation Systems and methods for circular buffering control in a memory device

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000267984A (ja) 1999-03-18 2000-09-29 Nec Saitama Ltd データ処理装置およびデータ処理方法
US20020188905A1 (en) 2001-06-08 2002-12-12 Broadcom Corporation System and method for interleaving data in a communication device
US20050228929A1 (en) * 2004-04-02 2005-10-13 Arm Limited Bridge circuit
US20080256417A1 (en) 2007-04-13 2008-10-16 Rgb Networks, Inc. SDRAM convolutional interleaver with two paths

Also Published As

Publication number Publication date
KR20130057899A (ko) 2013-06-03
US9183170B2 (en) 2015-11-10
US20130138848A1 (en) 2013-05-30

Similar Documents

Publication Publication Date Title
KR101861769B1 (ko) 비동기식 브릿지 및 이의 동작 방법, 및 이를 포함하는 SoC
US9160585B2 (en) Data interface synchronization
US8819462B2 (en) Serial advanced technology attachment interfaces and methods for power management thereof
EP3158698B1 (en) Systems and methods for providing power savings and interference mitigation on physical transmission media
KR20130142941A (ko) 선형 어드레스 리맵핑 로직을 포함하는 메모리 시스템 및 시스템 온 칩
US10110334B2 (en) High speed serializer using quadrature clocks
US11831543B2 (en) Flow control for a multiple flow control unit interface
KR20160048818A (ko) 구성가능 클록 트리
US20140173228A1 (en) Memory system and system on chip including the same
US9928191B2 (en) Communication device with selective encoding
TW201714099A (zh) 用於經由平行匯流排高速率資料傳輸之有效率編碼及解碼架構
KR20170029700A (ko) 시퀀셜 회로 및 그것의 동작 방법
CN116594930A (zh) 一种基于流水线的数据传输控制方法、系统及电子设备
KR102441781B1 (ko) 반도체 회로
US9455706B2 (en) Dual-rail encoding
CN110187918B (zh) 二进制至格雷转换电路、相关的fifo存储器、集成电路和方法
US8995500B2 (en) Asynchronous correlation circuit, asynchronous full adder circuit, calculation device, correlation device, asynchronous maximum value N detection circuit, and satellite signal acquisition device
US10417148B2 (en) Bus system and bus traffic control apparatus for controlling the same
TW201729114A (zh) 用於串擾駕馭式傳訊的以邏輯為基礎之解碼器
KR102012904B1 (ko) 반도체 집적회로와 그 동작 방법
KR101370606B1 (ko) 스위칭 횟수 및 크로스톡 지연을 최소화한 버스 인코딩 장치
CN114840458B (zh) 读写模块、片上系统和电子设备
US20160291678A1 (en) Power reduction in bus interconnects
US9690730B2 (en) Register slicing circuit and system on chip including the same
US8816885B2 (en) Data interface alignment

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