KR102410692B1 - 슬레이브와 데이터 통신을 할 수 있는 마스터와 상기 마스터를 포함하는 데이터 처리 시스템 - Google Patents

슬레이브와 데이터 통신을 할 수 있는 마스터와 상기 마스터를 포함하는 데이터 처리 시스템 Download PDF

Info

Publication number
KR102410692B1
KR102410692B1 KR1020150044528A KR20150044528A KR102410692B1 KR 102410692 B1 KR102410692 B1 KR 102410692B1 KR 1020150044528 A KR1020150044528 A KR 1020150044528A KR 20150044528 A KR20150044528 A KR 20150044528A KR 102410692 B1 KR102410692 B1 KR 102410692B1
Authority
KR
South Korea
Prior art keywords
data
segment
dirty
bus
output
Prior art date
Application number
KR1020150044528A
Other languages
English (en)
Other versions
KR20160116594A (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 KR1020150044528A priority Critical patent/KR102410692B1/ko
Priority to US15/067,166 priority patent/US10108568B2/en
Publication of KR20160116594A publication Critical patent/KR20160116594A/ko
Application granted granted Critical
Publication of KR102410692B1 publication Critical patent/KR102410692B1/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/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4208Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a system bus, e.g. VME bus, Futurebus, Multibus
    • 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/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0895Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
    • 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/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • 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/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4208Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a system bus, e.g. VME bus, Futurebus, Multibus
    • G06F13/4217Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a system bus, e.g. VME bus, Futurebus, Multibus with synchronous protocol
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/46Caching storage objects of specific type in disk cache
    • G06F2212/466Metadata, control data

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)
  • Bus Control (AREA)

Abstract

본 발명은 데이터를 세그먼트 단위로 버스를 통해 슬레이브로 전송하는 마스터에 관한 것이다. 상기 마스터는 상기 데이터 중에서 현재 세그먼트에 포함될 제1데이터 세그먼트들의 더티 비트들을 수신하여 분석하고, 분석 결과에 따라 제1선택 신호와 상기 현재 세그먼트에 관련된 위치 정보를 출력하는 유한 상태 머신과, 상기 제1선택 신호에 기초하여, 상기 현재 세그먼트를 더티 데이터 세그먼트로서 상기 버스로 출력할지를 결정하는 제1멀티플렉서를 포함한다.

Description

슬레이브와 데이터 통신을 할 수 있는 마스터와 상기 마스터를 포함하는 데이터 처리 시스템{MASTER CAPABLE OF COMMUNICATING WITH SLAVE AND DATA PROCESSING SYSTEM HAVING THE MASTER}
본 발명의 개념에 따른 실시 예는 버스를 통해 슬레이브와 데이터 통신을 할 수 있는 마스터에 관한 것으로, 특히 상기 버스를 통해 상기 슬레이브로 데이터를 라이트할 때 업데이트가 필요한 데이터만을 상기 버스를 통해 상기 슬레이브로 전송함으로써 데이터 전송 효율을 높일 수 있는 마스터와 상기 마스터를 포함하는 데이터 처리 시스템에 관한 것이다.
최근 디지털 전자 장치의 소형화, 고성능화, 다기능화, 및 컨버전스 (convergence) 추세에 맞춰, 서로 다른 기능을 수행하는 복수의 시스템들이 하나의 칩으로 집적된 시스템 온 칩(system on chip(SoC))의 사용이 보편화되고 있다.
시스템 온 칩(SoC)의 설계에 있어서 급변하는 시장의 요구에 대응하기 위해서는 개발에 소요되는 시간을 줄이는 것은 필수적이다. 이를 위해서 기존에 설계되어 사용되고 있는 시스템 블록(system block), 즉, 아이피(intellectual property(IP)) 블록의 재활용이 점차 확대되고 있다. 이러한 아이피(IP) 블록의 재활용은 제품 개발에 소요되는 시간을 단축시킬 뿐만 아니라, 새롭게 개발된 시스템 온 칩(SoC)의 신뢰성을 향상시키는 데에도 효과적이다.
한편, 시스템 온 칩(SoC)의 효과적인 설계를 위해서는 하나의 칩으로 집적된 복수의 아이피(IP) 블럭들 사이의 상호 통신을 위한 버스 시스템(bus system)의 선택이 무엇보다 중요하다. 버스 시스템에 있어서의 데이터의 송신과 수신은 버스 시스템의 정해진 프로토콜(protocol)에 따라 수행된다.
널리 사용되고 있는 대표적인 버스 시스템 중에서 하나인 ARM(advanced RISC machine)사의 AMBA®(advanced microcontroller bus architecture)는 다양한 프로토콜을 포함한다. 예를 들면, AMBA는 고속의 아이피(IP) 블럭들 사이를 연결하는 AHB(advanced high performancebus), AXI(advanced extensible interface), 및 저속의 아이피(IP) 블럭들 사이를 연결하는 APB(advanced peripheral bus)로 구성된다.
본 발명이 이루고자 하는 기술적인 과제는 버스를 통해 슬레이브로 데이터를 라이트할 때, 업데이트가 필요한 데이터만을 상기 버스를 통해 상기 슬레이브로 전송함으로써 데이터 전송 효율을 높일 수 있는 마스터와 이를 포함하는 데이터 처리 시스템을 제공하는 것이다.
본 발명의 실시 예에 따라 데이터를 세그먼트 단위로 버스를 통해 슬레이브로 전송할 수 있는 마스터는 상기 데이터 중에서 현재 세그먼트에 포함될 제1데이터 세그먼트들의 더티 비트들을 수신하여 분석하고, 분석 결과에 따라 제1선택 신호와 상기 현재 세그먼트에 관련된 위치 정보를 출력하는 유한 상태 머신(finite state machine(FSM))과, 상기 제1선택 신호에 기초하여, 상기 현재 세그먼트를 더티 데이터 세그먼트로서 상기 버스로 출력할지를 결정하는 제1멀티플렉서를 포함한다.
상기 세그먼트 단위는 AMBA®(advanced microcontroller bus architecture) AXI(Advanced eXtensible Interface) 프로토콜의 스펙에서 정의된 비트(beat)일 수 있다.
실시 예에 따라, 상기 위치 정보는 상기 데이터)와 관련된 세그먼트들 중에서 상기 현재 세그먼트가 몇 번째 세그먼트인지를 나타낸다. 상기 제1데이터 세그먼트들의 전송 순서가 연속적일 때, 상기 더티 비트들 중에서 적어도 하나는 더티로 설정된다. 된 마스터.
실시 예에 따라, 상기 위치 정보는 상기 데이터에 포함된 데이터 세그먼트들 중에서 상기 제1데이터 세그먼트들 각각이 몇 번째 데이터 세그먼트인지를 나타낸다. 상기 제1데이터 세그먼트들이 인접하지 않을 때 상기 더티 비트들 모두는 더티로 설정되고, 상기 제1데이터 세그먼트들이 인접할 때 상기 더티 비트들 중에서 적어도 하나는 더티로 설정된다.
상기 마스터는 상기 제1데이터 세그먼트들과 상기 더티 비트들을 출력하는 프로세서를 더 포함하고, 상기 FSM은, 상기 더티 비트들 모두가 상기 프로세서에 의해 액세스되는 캐시에 저장된 상기 제1데이터 세그먼트들 모두가 변경되지 않음을 나타낼 때, 상기 현재 세그먼트의 생성을 금지하는 상기 제1선택 신호를 생성하고 상기 위치 정보를 출력하지 않는다.
상기 마스터는 제2멀티플렉서를 더 포함하고, 상기 FSM은 상기 분석 결과에 따라 제2선택 신호를 생성하고, 상기 제2멀티플렉서는, 상기 제2선택 신호에 기초하여, 상기 더티 비트들을 상기 버스로 출력할지를 결정한다.
상기 마스터는 상기 제1데이터 세그먼트들과 상기 더티 비트들을 출력하는 프로세서를 더 포함하고, 상기 FSM은, 상기 더티 비트들 모두가 상기 프로세서에 의해 액세스되는 캐시에 저장된 상기 제1데이터 세그먼트들 모두가 변경되지 않음을 나타낼 때, 상기 더티 비트들의 출력을 금지하는 상기 제2선택 신호를 생성하고 상기 위치 정보를 출력하지 않는다.
본 발명의 실시 예에 따른 데이터 처리 시스템은 버스와, 상기 버스에 접속된 슬레이브와, 상기 버스에 접속되고 데이터를 세그먼트 단위로 상기 버스를 통해 상기 슬레이브로 전송하는 마스터를 포함한다. 상기 마스터는 상기 데이터 중에서 현재 세그먼트에 포함될 제1데이터 세그먼트들의 더티 비트들을 수신하여 분석하고, 분석 결과에 따라 제1선택 신호와 상기 현재 세그먼트에 관련된 위치 정보를 출력하는 유한 상태 머신(finite state machine(FSM))과, 상기 제1선택 신호에 기초하여, 상기 현재 세그먼트를 더티 데이터 세그먼트로서 상기 버스로 출력할지를 결정하는 제1멀티플렉서를 포함한다.
상기 버스, 상기 슬레이브, 및 상기 마스터는 동일한 반도체 칩에 구현될 수 있다. 상기 슬레이브는 제1반도체 칩에 구현되고, 상기 마스터는 제2반도체 칩에 구현될 수 있다. 상기 마스터는 CPU, GPU, 디스플레이 컨트롤러, 및 카메라 인터페이스 중에서 어느 하나일 수 있다.
본 발명의 실시 예에 따른 버스 마스터는 시스템 버스를 통해 업데이트가 필요한 세그먼트들, 예컨대 비트들(beats)만을 전송함으로써 데이터 전송 효율을 높일 수 있는 효과가 있다. 업데이트가 필요한 세그먼트들만이 시스템 버스를 통해 슬레이브로 전송됨에 따라, 상기 시스템 버스의 버스 트래픽(bus traffic)이 감소하는 효과가 있다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 상세한 설명이 제공된다.
도 1은 본 발명의 실시 예에 따른 데이터 처리 시스템의 블록도이다.
도 2는 본 발명의 일 실시 예에 따른 도 1에 도시된 버스, 제1마스터, 및 제1슬레이브의 세부 블록도이다.
도 3은 데이터를 세그먼트 단위로 분할하는 과정을 설명하기 위한 개념도이다.
도 4는 도 2에 도시된 제1버스 마스터에 의해 데이터가 처리되는 과정의 일 실시 예를 설명하기 위한 개념도이다.
도 5는 도 2에 도시된 제1버스 마스터에 의해 데이터가 처리되는 과정의 다른 실시 예를 설명하기 위한 개념도이다.
도 6은 도 2에 도시된 제1버스 마스터의 작동에 따라 도 4에 도시된 데이터가 처리되는 과정을 설명하기 위한 개념도이다.
도 7은 본 발명의 다른 실시 예에 따른 도 1에 도시된 버스, 제1마스터, 및 제1슬레이브의 세부 블록도이다.
도 8은 도 7에 도시된 제1버스 마스터의 작동에 따라 도 4에 도시된 데이터가 처리되는 과정을 설명하기 위한 개념도이다.
도 9는 본 발명의 실시 예에 따른 제1버스 마스터의 작동 방법을 설명하기 위한 플로우 차트이다.
도 10은 본 발명의 실시 예에 따른 데이터 처리 시스템의 작동 방법을 설명하기 위한 플로우 차트이다.
도 11은 본 발명의 데이터 처리 시스템을 포함하는 시스템의 일 실시 예를 나타내는 블록도이다.
도 12는 본 발명의 데이터 처리 시스템을 포함하는 시스템의 다른 실시 예를 나타내는 블록도이다.
도 13은 본 발명의 데이터 처리 시스템을 포함하는 시스템의 또 다른 실시 예를 나타내는 블록도이다.
도 14는 본 발명의 데이터 처리 시스템을 포함하는 시스템의 또 다른 실시 예를 나타내는 블록도이다.
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 또는 기능적 설명은 단지 본 발명의 개념에 따른 실시 예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시 예들은 다양한 형태들로 실시될 수 있으며 본 명세서에 설명된 실시 예들에 한정되지 않는다.
본 발명의 개념에 따른 실시 예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시 예들을 도면에 예시하고 본 명세서에서 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예들을 특정한 개시 형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물, 또는 대체물을 포함한다.
제1 또는 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 벗어나지 않은 채, 제1구성 요소는 제2구성 요소로 명명될 수 있고 유사하게 제2구성 요소는 제1구성 요소로도 명명될 수 있다.
어떤 구성 요소가 다른 구성 요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성 요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성 요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성 요소가 다른 구성 요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는 중간에 다른 구성 요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성 요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로서, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 본 명세서에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 나타낸다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 본 명세서에 첨부된 도면들을 참조하여 본 발명의 실시 예들을 상세히 설명한다.
도 1은 본 발명의 실시 예에 따른 데이터 처리 시스템의 블록도이다. 도 1을 참조하면, 데이터 처리 시스템(10)은 복수의 마스터들(100-1~100-m; m은 1보다 큰 자연수), 복수의 슬레이브들(200-1~200-k; k는 1보다 큰 자연수), 및 시스템 버스 (system bus; 300)를 포함할 수 있다. 예컨대, m=k 또는 m≠k일 수 있다. 예컨대, 데이터 처리 시스템(10)은 집적 회로(IC), 마더보드, 시스템 온 칩(system on chip(SoC)), 애플리케이션 프로세서(application processor)로 구현될 수 있으나 이에 한정되는 것은 아니다.
비록, 도 1에는 m개의 마스터들(100-1~100-m)과 k개의 슬레이브들(200-1~ 200-k)이 도시되어 있으나, 본 발명의 개념에 따른 실시 예는 마스터들의 개수와 슬레이브들의 개수에 한정되는 것은 아니다. 따라서, 데이터 처리 시스템(10)은 적어도 하나의 마스터와 적어도 하나의 슬레이브를 포함할 수 있다.
데이터 처리 시스템(10)은 PC(personal computer) 또는 모바일 컴퓨팅 장치에 포함될 수 있다. 상기 모바일 컴퓨팅 장치는 랩탑 컴퓨터(laptop computer), 이동 전화기, 스마트 폰(smart phone), 태블릿(tablet) PC, PDA(personal digital assistant), EDA(enterprise digital assistant), 디지털 스틸 카메라(digital still camera), 디지털 비디오 카메라(digital video camera), PMP(portable multimedia player), 모바일 인터넷 장치(mobile internet device(MID)), 웨어러블 컴퓨터, 사물 인터넷(internet of things(IoT)) 장치, 또는 만물 인터넷(internet of everything(IoE)) 장치로 구현될 수 있다.
복수의 마스터들(100-1~100-m) 중에서 어느 하나의 마스터(예컨대, 100-1)는 버스 마스터(예컨대, 110-1)를 통해 시스템 버스(300)로 데이터를 전송하거나 시스템 버스(300)로부터 데이터를 수신할 수 있다. 예컨대, 데이터는 명령(command), 응답(response) 및/또는 데이터(예컨대, 라이트 데이터 또는 리드 데이터)를 포함할 수 있다.
실시 예에 따라, 복수의 마스터들(100-1 내지 100-m) 중에서 어느 하나는 CPU(central processing unit), GPU(graphic processing unit), 디스플레이 컨트롤러(display controller), 카메라 인터페이스(camera interface), 코덱(codec), 비디오 스케일러(video scaler), 또는 오디오 DSP(audio digital signal processing(audio DSP)) 등으로 구현될 수 있으나 이에 한정되는 것은 아니다.
복수의 마스터들(100-1 내지 100-m) 중에서 적어도 하나는 그 안에 포함된 프로세서(예컨대, 도 2의 105)로부터 출력된 데이터를 복수의 슬레이브들(200-1 내지 200-k) 중에서 어느 하나에 포함된 저장 장치(예컨대, 도 2의 220)에 라이트하기 위한 라이트 요청(또는, 라이트 명령)을 생성할 수 있다.
상기 라이트 요청은 라이트 명령(write command), 어드레스(address), 라이트 데이터의 크기, 및/또는 라이트 데이터의 순서에 대한 정보 등을 포함할 수 있으나 이에 한정되는 것은 아니다.
복수의 마스터들(100-1 내지 100-m) 각각과 복수의 슬레이브들(200-1 내지 200-k) 각각은 시스템 버스(300)를 통하여 서로 데이터를 주거나 받을 수 있다. 실시 예에 따라, 시스템 버스(300)는 AXI(Advanced eXtensible Interface)와 호환되는 버스(AXI-compatible bus)일 수 있으나 시스템 버스(300)의 종류가 이에 한정되는 것은 아니다.
복수의 슬레이브들(200-1 내지 200-k) 각각은 복수의 버스 슬레이브들(210-1 내지 210-k) 각각을 포함할 수 있다. 복수의 슬레이브들(200-1 내지 200-k) 중에서 어느 하나의 슬레이브(예컨대, 200-1)는 버스 슬레이브(예컨대, 210-1)를 통해 시스템 버스(300)로 데이터를 전송하거나 시스템 버스(300)로부터 데이터를 수신할 수 있다. 실시 예에 따라, 복수의 버스 슬레이브들(210-1 내지 210-k) 중에서 어느 하나는 메모리 컨트롤러(memory controller), USB(universal serial bus) 장치, 또는 버퍼 등으로 구현될 수 있으나 이에 한정되는 것은 아니다.
복수의 슬레이브들(200-1 내지 200-k) 중에서 적어도 하나는, 복수의 마스터들(100-1 내지 100-m) 중에서 적어도 하나로부터 전송된 라이트 요청에 기초하여, 시스템 버스(300)를 통해 전송된 데이터를 상기 적어도 하나에 포함된 저장 장치(예컨대, 도 2의 220)에 라이트할 수 있다.
실시 예에 따라, 버스 마스터(예컨대, 110-1)를 포함하는 마스터(예컨대, 100-1)와 버스 슬레이브(예컨대, 210-1)를 포함하는 슬레이브(예컨대, 200-1)는 동일한 반도체 칩에 구현될 수 있다. 다른 실시 예에 따라, 버스 마스터(예컨대, 110-1)를 포함하는 마스터(예컨대, 100-1)는 제1칩에 구현되고, 버스 슬레이브(예컨대, 210-1)를 포함하는 슬레이브(예컨대, 200-1)는 상기 제1칩과 다른 제2칩에 구현될 수 있다.
도 2는 본 발명의 일 실시 예에 따른 도 1에 도시된 버스, 제1마스터, 및 제1슬레이브의 세부 블록도이다. 도 1과 도 2를 참조하면, 데이터 처리 시스템(10-1)은 제1마스터(100-1), 제1슬레이브(200-1), 및 시스템 버스(300)를 포함할 수 있다.
제1마스터(100-1)는 프로세서(105)와 제1버스 마스터(110-1)를 포함할 수 있다. 비록 도 2에서는 제1마스터(100-1)의 내부 블록도가 예시적으로 도시되어 있으나, 각 마스터(100-2 내지 100-m)의 구조는 제1마스터(100-1)의 구조와 동일 또는 유사할 수 있으나 이에 한정되는 것은 아니다.
프로세서(105)는 제1마스터(100-1)의 작동을 전반적으로 제어할 수 있고, 제1버스 마스터(110-1)로 데이터(DATA)와 데이터(DATA)에 대한 라이트 요청을 전송할 수 있다. 예컨대, 프로세서(105)는 멀티-코어 프로세서로 구현될 수 있다.
데이터 캐시(data cache)를 액세스할 수 있는 프로세서(105)가 시스템 버스 (300)를 통해 라이트 전송(write transfer)을 수행할 때, 제1버스 마스터(110-1)는 라이트 대상이 되는 데이터 중에서 업데이트가 필요한 세그먼트(예컨대, 비트(beat))를 시스템 버스(300)로 전송할 수 있다.
이때, 제1버스 마스터(110-1)는 세그먼트와 상기 세그먼트에 대한 위치 정보를 함께 시스템 버스(300)로 전송할 수 있다. 예컨대, 상기 위치 정보는 상기 세그먼트에 대한 라이트 어드레스 또는 오프셋(offset)을 의미할 수 있다. 예컨대, 데이터 캐시는 프로세서(105)의 내부 또는 외부에 구현될 수 있다. 예컨대, 데이터 캐시는 L1 캐시 또는 L2 캐시를 의미할 수 있다.
제1마스터(100-1)는 더티 비트가 로직 0인지 또는 로직 1인지를 판단하고, 판단 결과에 따라 로직 1을 갖는 더티 비트에 해당하는 데이터 세그먼트와 상기 데이터 세그먼트에 인접한 데이터 세그먼트를 포함하는 세그먼트(예컨대, 비트 (beat))를 생성할 수 있다. 또한, 제1마스터(100-1)는 세그먼트(예컨대, 비트 (beat))에 포함될 데이터 세그먼트들의 더티 비트들이 모두 로직 0인 경우, 상기 세그먼트를 생성하지 않는다.
따라서, 제1마스터(100-1)는 데이터(DATA)에 포함된 모든 데이터 세그먼트들을 시스템 버스(300)로 출력하지 않고, 업데이트가 필요한 데이터 세그먼트들을 세그먼트(예컨대, 비트(beat)) 단위로 시스템 버스(300)로 출력할 수 있다. 따라서, 제1마스터(100-1)는 시스템 버스(300)로 전송되는 세그먼트들(예컨대, 비트들 (beats))의 개수를 줄일 수 있으므로 압축기(compressor)의 기능을 수행할 수 있다.
제1슬레이브(200-1)는, 제1마스터(100-1)로부터 출력된 데이터, 예컨대 세그먼트들(예컨대, 비트들 (beats))과 위치 정보를 이용하여, 저장 장치(220)에 정확하게 라이트할 수 있도록 할 수 있다. 따라서, 제1슬레이브(200-1)는 압축 해제기 (decompressor)의 기능을 수행할 수 있다.
데이터(DATA)는 복수의 데이터 세그먼트들(data segments)과, 상기 복수의 데이터 세그먼트들 각각에 대한 적어도 하나의 더티 비트(dirty bit)를 포함할 수 있다. 예컨대, 상기 복수의 데이터 세그먼트들 각각은 K-바이트(byte)일 수 있다. 여기서, K는 1 또는 그 이상의 자연수일 수 있고, 데이터 세그먼트(data segment)는 데이터 비트들의 집합을 의미할 수 있다.
데이터 캐시는 일반적으로 캐시 블록(예컨대, 캐시 라인)당 2개의 플래그 비트들(two flag bits)을 요구한다. 상기 2개의 플래그 비트들은 유효 비트(valid bit)와 더티 비트(dirty bit)이다. 상기 더티 비트는 데이터 캐시에 저장된 데이터가 변경되었음을 나타내는 플래그 비트이고, 상기 유효 비트는 캐시 블록(예컨대, 캐시 라인)에 유효 데이터가 로드되었는지 여부를 나타낸다.
상기 더티 비트는 프로세서(105)가 새로운 데이터를 캐시 블록(예컨대, 캐시 라인)에 라이트했으나 상기 새로운 데이터가 메인 메모리, 예컨대 저장 장치(220)로 아직 전송되지 않았음을 나타낸다.
즉, 더티 비트(또는 수정된 비트(modified bit))는 제1슬레이브(200-1)에 저장된 데이터를 프로세서(105)로부터 출력된 데이터(DATA)로 변경할 필요가 있는지를 나타내는 플래그 비트일 수 있다. 상기 더티 비트가 더티로 설정되면, 제1슬레이브(200-1)의 저장 장치(220)에 저장된 데이터는 프로세서(105)로부터 출력된 데이터 (DATA)로 업데이트될 수 있다. 여기서, "더티로 설정된다" 함은 더티 비트가 논리 1로 설정되는 것을 의미할 수 있다.
제1버스 마스터(110-1)는 제1멀티플렉서(multiplexer(MUX1); 111), 유한 상태 머신(finite state machine(FSM); 113), 및 제2멀티플렉서(MUX2; 115)를 포함할 수 있다.
MUX1(111)는 프로세서(105)로부터 출력된 데이터(DATA)를 수신하고, 데이터 (DATA)에 포함된 복수의 데이터 세그먼트들 중에서 FSM(113)으로부터 출력된 제1선택 신호(SEL1)에 기초하여 선택된 제1데이터 세그먼트들을 더티 데이터 세그먼트들 (DSEGi, 0≤i≤(N-1))로서 시스템 버스(300)로 출력할 수 있다. 예컨대, 제1데이터 세그먼트는 논리 1을 갖는 더티 비트에 해당하는 데이터 세그먼트일 수 있다.
FSM(113)은 데이터(DATA)에 포함된 더티 비트들을 분석하고, 데이터(DATA)에 포함된 복수의 데이터 세그먼트들 중에서 상기 분석 결과에 따라(예컨대, 논리 1을 갖는 더티 비트에 해당하는) 제1데이터 세그먼트들을 선택하기 위한 제1선택 신호 (SEL1)를 생성할 수 있다.
FSM(113)은 데이터(DATA)에 포함된 더티 비트들 중에서 제1데이터 세그먼트들에 대한 더티 비트들을 선택하기 위한 제2선택 신호(SEL2)를 생성할 수 있다.
FSM(113)은 복수의 데이터 세그먼트들 중에서 제1데이터 세그먼트들 각각의 위치 정보를 분석하고, 상기 위치 정보에 상응하는 더티 데이터 세그먼트들 (DSEGi) 각각에 대한 위치 정보(SLi)를 시스템 버스(300)로 출력할 수 있다. 여기서, 위치 정보(SLi)는 시스템 버스(300)로 전송될 세그먼트(또는 더티 데이터 세그먼트)가 몇 번째 세그먼트(또는 더티 데이터 세그먼트)인지를 나타내는 정보(또는 식별자)일 수 있다.
FSM(113)은 더티 데이터 세그먼트들(DSEGi) 중에서 해당 더티 데이터 세그먼트가 시스템 버스(300)로 전송되는 마지막으로 더티 데이터 세그먼트인지를 나타내는 최종 세그먼트 정보(FSIi)를 시스템 버스(300)로 출력할 수 있다.
MUX2(115)는 프로세서(105)로부터 출력된 데이터(DATA)를 수신하고, FSM (113)으로부터 출력된 제2선택 신호(SEL2)에 응답하여 데이터(DATA)에 포함된 더티 비트들 중에서 더티 데이터 세그먼트들(DSEGi) 각각에 대한 더티 비트 정보(DTIi)를 시스템 버스(300)로 출력할 수 있다.
본 발명의 실시 예에 따른 제1버스 마스터(110-1)는 더티 데이터 세그먼트들 (DSEGi), 더티 비트 정보(DTIi), 최종 세그먼트 정보(FSIi), 및 위치 정보(SLi)를 시스템 버스(300)로 출력할 수 있다. 예컨대, 프로세서(105)는 더티 데이터 세그먼트들(DSEGi), 더티 비트 정보(DTIi), 최종 세그먼트 정보(FSIi), 및 위치 정보 (SLi)의 출력 타이밍을 제어할 수 있다. 예컨대, 프로세서 (105)는 시스템 버스(300)의 프로토콜(예컨대, AXI의 프로토콜)에 적합하게 상기 출력 타이밍을 제어할 수 있다.
제1슬레이브(200-1)는 제1버스 슬레이브(210-1)와 저장 장치(220)를 포함할 수 있다. 비록, 도 2에서는 제1슬레이브(200-1)가 도시되어 있으나, 각 슬레이브 (200-2 내지 200-k)의 구조는 제1슬레이브(200-1)의 구조와 동일 또는 유사할 수 있으나 이에 한정되는 것은 아니다.
제1버스 슬레이브(210-1)는 시스템 버스(300)를 통해 제1버스 마스터(110-1)로부터 더티 데이터 세그먼트들(DSEGi), 더티 비트 정보(DTIi), 최종 세그먼트 정보(FSIi), 및 위치 정보(SLi)를 수신할 수 있다.
제1버스 슬레이브(210-1)는 디멀티플렉싱 블록(demultiplexing block; 간단히 '디먹싱 블록'; 215)을 포함할 수 있다. 제1버스 슬레이브(210-1)는, 디먹싱 블록(215)을 이용하여, 더티 데이터 세그먼트들(DSEGi), 더티 비트 정보(DTIi), 최종 세그먼트 정보(FSIi), 및 위치 정보(SLi)를 분석하고, 분석의 결과에 따라 저장 장치(220)로 전송(또는 라이트)될 라이트 데이터(WDATA1)를 생성할 수 있다. 이때, 라이트 데이터(WDATA1)는 데이터(DATA)의 일부를 포함할 수 있다. 예컨대, 라이트 데이터(WDATA1)는 더티 데이터 세그먼트들을 포함할 수 있다.
저장 장치(220)는 메모리 장치 또는 버퍼로 구현될 수 있고, 제1버스 슬레이브(210-1)로부터 출력된 라이트 데이터(WDATA1)를 수신하고, 저장 장치(220)에 저장된 데이터를 라이트 데이터(WDATA1)로 업데이트할 수 있다. 실시 예에 따라, 저장 장치(220)는 휘발성 메모리 장치 및/또는 불휘발성 메모리 장치로 구현될 수 있다.
도 3은 데이터를 세그먼트 단위로 분할하는 과정을 설명하기 위한 개념도이다. 도 1부터 도 3을 참조하면, 데이터(DATA)는 복수의 데이터 세그먼트들(DATA0 내지 DATA(2N-1), N은 자연수)과, 복수의 데이터 세그먼트들(DATA0 내지 DATA(2N-1)) 각각에 대한 더티 비트들(DT0 내지 DT(2N-1)) 각각을 포함할 수 있다. 예컨대, 복수의 데이터 세그먼트들(DATA0 내지 DATA(2N-1)) 각각은 1-바이트 또는 그 이상의 바이트들을 포함할 수 있다.
데이터(DATA)는 복수의 세그먼트들(SEG0~SEG(N-1))로 분할될 수 있다. 예컨대, 각 세그먼트(SEG0~SEG(N-1))는 AMBA® AXI 프로토콜에서 정의된 바와 같이 "비트(beat)"일 수 있다. "비트(beat)"는 AXI 버스트 내에서 개별적 데이터 전송 (individual data transfer within an AXI burst)이다. 본 명세서는 AMBA® AXI 프로토콜 v1.0 스펙(specification)을 참조로서 포함한다.
각 버스 마스터(110-1~110-m)는 풀 캐시 라인(full cache line)에 대한 데이터 저장이 아닌 부분적 저장 액세스(partial store acceess)가 발생할 경우에도 풀 캐시 라인 축출(full cache line eviction)을 통해 저장 장치로 전달되는 데이터의 세그먼트들(예컨대, 비트들)의 개수를 줄일 수 있다.
실시 예에 따라, 제1세그먼트(SEG0)는 제1데이터 세그먼트(DATA0), 제2데이터 세그먼트(DATA1), 제1데이터 세그먼트(DATA0)에 대한 제1더티 비트(DT0), 및 제2데이터 세그먼트(DATA1)에 대한 제2더티 비트(DT1)를 포함할 수 있다. 제1데이터 그룹(SSEG0)은 제1데이터 세그먼트(DATA0)와 제2데이터 세그먼트(DATA1)를 포함할 수 있고, 제1더티 비트 정보(DTI0)는 제1더티 비트(DT0)와 제2더티 비트(DT1)를 포함할 수 있다. 예컨대, 제1데이터 세그먼트(DATA0)와 제2데이터 세그먼트(DATA1)는 서로 인접하거나 제1데이터 세그먼트(DATA0)와 제2데이터 세그먼트(DATA1)의 전송 순서가 연속적일 수 있다.
제2세그먼트(SEG1)는 제3데이터 세그먼트(DATA2), 제4데이터 세그먼트 (DATA3), 제3데이터 세그먼트(DATA2)에 대한 제3더티 비트(DT2), 및 제4데이터 세그먼트(DATA3)에 대한 제4더티 비트(DT3)를 포함할 수 있다. 제2데이터 그룹 (SSEG1)은 제3데이터 세그먼트(DATA2)와 제4데이터 세그먼트(DATA3)를 포함할 수 있고, 제2더티 비트 정보(DTI1)는 제3더티 비트(DT2)와 제4더티 비트(DT3)를 포함할 수 있다.
제N-번째 세그먼트(SEG(N-1))는 제(2N-1)-번째 데이터 세그먼트(DATA(2N-2)), 제2N-번째 데이터 세그먼트(DATA(2N-1)), 제(2N-1)-번째 데이터 세그먼트 (DATA(2N-2))에 대한 제(2N-1)-번째 더티 비트(DT(2N-2)), 및 제2N-번째 데이터 세그먼트(DATA(2N-1))에 대한 제2N-번째 더티 비트(DT(2N-1))를 포함할 수 있다. 제N-번째 데이터 그룹(SSEG(N-1))은 제(2N-1)-번째 데이터 세그먼트(DATA(2N-2))와 제2N-번째 데이터 세그먼트(DATA(2N-1))를 포함할 수 있고, 제N-번째 더티 비트 정보(DTI(N-1))은 제(2N-1)-번째 더티 비트(DT(2N-2))와 제2N-번째 더티 비트(DT(2N-1))를 포함할 수 있다. 이때, 0≤i≤(N-1)이다.
비록, 도 3에서는 각 세그먼트트(SEG0~SEG(N-1))가 2개씩의 데이터 세그먼트들을 포함하는 것으로 도시되어 있으나, 각 세그먼트(SEG0~SEG(N-1))에 포함될 데이터 세그먼트들의 개수와 더티 비트들의 개수는 다양하게 변경될 수 있다. 예컨대, 데이터(DATA)는, 프로세서(105) 또는 FSM(113)의 제어에 따라, 복수의 세그먼트들로 분할될 수 있다.
도 4는 도 2에 도시된 제1버스 마스터에 의해 데이터가 처리되는 과정의 일 실시 예를 설명하기 위한 개념도이고, 도 5는 도 2에 도시된 제1버스 마스터에 의해 데이터가 처리되는 과정의 다른 실시 예를 설명하기 위한 개념도이다.
도 4에 도시된 바와 같이 각 더티 비트(DT0~DT7)는 데이터(DATA)에 포함될 수 있고, 도 5에 도시된 바와 같이 각 더티 비트(DT0~DT7)는 데이터(DATA)에 포함되지 않을 수 있다.
도 1부터 도 4를 참조하면, 각 데이터 세그먼트(DATA0 내지 DATA7)와, 각 데이터 세그먼트(DATA0 내지 DATA7)에 대한 각 더티 비트(DT0 내지 DT7)는 인접하게 배치될 수 있다.
비록, 도 4에서는 8개의 데이터 세그먼트들(DATA0 내지 DATA7)과 8개의 더티 비트들(DT0 내지 DT7)을 포함하는 데이터(DATA)가 도시되어 있으나, 본 발명의 개념에 따른 실시 예에서 데이터(DATA)에 포함되는 데이터 세그먼트들의 개수와 더티 비트들의 개수에 한정되는 것은 아니다.
각 더티 비트(DT0 내지 DT7)는 논리 1 또는 논리 0일 수 있다. 예컨대, 논리 1은 더티 데이터 세그먼트과 관련될 수 있다. 따라서, 저장 장치(220)에 저장된 데이터는 논리 1을 갖는 더티 비트와 관련된 데이터 세그먼트로 업데이트될 수 있다.
MUX1(111)는, FSM(113)으로부터 출력된 제1선택 신호(SEL1)에 응답하여, 데이터(DATA)에 포함된 데이터 세그먼트들(DATA0~DATA7) 중에서 논리 1을 갖는 더티 비트들과 관련된 데이터 세그먼트들을 더티 데이터 세그먼트들(DSEGi)로서 출력할 수 있다.
FSM(113)은 데이터(DATA)에 포함된 더티 비트들(DT0~DT7)을 분석하고, 분석의 결과에 따라 제1선택 신호(SEL1)와 제2선택 신호(SEL2)를 생성할 수 있다. 또한, FSM(113)은 데이터(DATA)에 포함된 더티 비트들(DT0~DT7)을 분석하고, 분석의 결과에 따라 더티 데이터 세그먼트들(DSEGi) 각각에 대한 위치 정보(SLi)와, 최종 세그먼트 정보(FSIi)를 출력할 수 있다.
MUX2(115)는, FSM(113)에서 출력된 제2선택 신호(SEL2)에 응답하여, 데이터 (DATA)에 포함된 더티 비트들(DT0~DT7) 중에서 더티 데이터 세그먼트들(DSEGi) 각각에 대한 더티 비트 정보(DTIi)를 출력할 수 있다.
도 1부터 도 5를 참조하면, 도 5에 도시된 데이터(DATA)는 복수의 데이터 세그먼트들(DATA0 내지 DATA7)만을 포함하고, 더티 비트들(DT0 내지 DT7)은 포함하지 않는다. 예컨대, 더티 비트들(DT0 내지 DT7)은 프로세서(105)에 의해 생성되고 더티 비트들(DT0 내지 DT7)은 제1버스 마스터(110-1)로 출력될 수 있다.
더티 비트들(DT0 내지 DT7)을 제외하면, 도 4에 도시된 구성 요소들(111, 113, 및 115)의 작동들은 도 5에 도시된 구성 요소들(111, 113, 및 115)의 작동들과 동일 또는 유사하다. 따라서, 도 5에 도시된 구성 요소들(111, 113, 및 115)의 작동들에 대한 설명은 생략한다.
도 6은 도 2에 도시된 제1버스 마스터의 작동에 따라 도 4에 도시된 데이터가 처리되는 과정을 설명하기 위한 개념도이다.
도 1부터 도 6을 참조하면, 데이터(DATA)는 복수의 세그먼트들(SEG0~SEG3)로 분할될 수 있다. 각 세그먼트(SEG0~SEG3)는 2개씩의 데이터 세그먼트들을 포함한다고 가정한다. 이때, 제1세그먼트(SEG0)는 0-번째 세그먼트이고, 제2세그먼트(SEG1)는 첫 번째 세그먼트이고, 제4세그먼트(SEG3)는 세 번째 세그먼트라고 가정한다.
제1세그먼트(SEG0)는 제1데이터 세그먼트(DATA0), 제2데이터 세그먼트 (DATA1), 제1더티 비트(DT0=1), 제2더티 비트(DT1=0), 및 제1최종 세그먼트 정보 (FSI0=0)를 포함할 수 있다. 각 최종 세그먼트 정보(FSI0~FSI3)는 논리 1 또는 논리 0으로 설정될 수 있다. 논리 1로 설정된 최종 세그먼트 정보는 해당 세그먼트가 마지막 세그먼트임을 지시하고, 논리 0으로 설정된 최종 세그먼트 정보는 해당 세그먼트가 마지막 세그먼트가 아님을 지시한다.
버스 마스터(110-1), 예컨대 FSM(113)는 2개씩 더티 비트들(DT0과 DT1, DT2와 DT3, DT4와 DT5, 및 DT6과 DT7)을 분석할 수 있다.
FSM(113)은 제1데이터 세그먼트(DATA0)에 대한 제1더티 비트(DT0=1)와 제2데이터 세그먼트(DATA1)에 대한 제2더티 비트(DT0=0)를 분석하고, 분석 결과에 따라 제1데이터 세그먼트(DATA0)와 제2데이터 세그먼트(DATA1)의 출력을 지시하는 제1선택 신호(SEL1)를 MUX1(111)로 출력할 수 있고, 상기 분석 결과에 따라 제1더티 비트 (DT0=1)와 제2더티 비트(DT0=0)의 출력을 지시하는 제2선택 신호(SEL2)를 MUX2 (115)로 출력할 수 있다.
따라서, MUX1(111)는 제1데이터 세그먼트(DATA0)와 제2데이터 세그먼트 (DATA1)를 포함하는 제1데이터 그룹(SSEG0)을 제1더티 데이터 세그먼트(DSEG0)로서 출력할 수 있고, MUX2(115)는 제1더티 비트(DT0=1)와 제2더티 비트(DT1=0)를 제1더티 비트 정보(DTI0)를 출력할 수 있다.
FSM(113)은 제1데이터 그룹(SSEG0)이 마지막 데이터 그룹이 아님을 지시하는 제1최종 세그먼트 정보(FSI0=0)를 출력하고, 제1데이터 그룹(SSEG0), 즉 제1더티 데이터 세그먼트(DSEG0)가 0-번째 더티 데이터 세그먼트(DSEG0)임을 지시하는 제1위치 정보(SL0=0)를 출력할 수 있다.
FSM(113)은 제3데이터 세그먼트(DATA2)에 대한 제3더티 비트(DT2=0)와 제4데이터 세그먼트(DATA3)에 대한 제4더티 비트(DT3=1)를 분석하고, 분석 결과에 따라 제3데이터 세그먼트(DATA2)와 제4데이터 세그먼트(DATA3)의 출력을 지시하는 제1선택 신호(SEL1)를 MUX1(111)로 출력하고, 상기 분석 결과에 따라 제3더티 비트 (DT2=0)와 제4더티 비트(DT3=1)의 출력을 지시하는 제2선택 신호(SEL2)를 MUX2 (115)로 출력할 수 있다.
따라서, MUX1(111)는 제3데이터 세그먼트(DATA2)와 제4데이터 세그먼트 (DATA3)를 포함하는 제2데이터 그룹(SSEG1)을 제2더티 데이터 세그먼트(DSEG1)로서 출력할 수 있고, MUX2(115)는 제3더티 비트(DT2=0)와 제4더티 비트(DT3=1)를 포함하는 제2더티 비트 정보(DTI1)를 출력할 수 있다.
FSM(113)은 제2데이터 그룹(SSEG1)이 마지막 데이터 그룹이 아님을 지시하는 제2최종 세그먼트 정보(FSI1=0)를 출력할 수 있고, 제2데이터 그룹(SSEG1), 즉 제2더티 데이터 세그먼트(DSEG1)가 첫 번째 더티 데이터 세그먼트(DSEG1)임을 지시하는 제2위치 정보(SL1=1)를 출력할 수 있다.
FSM(113)은 제5데이터 세그먼트(DATA4)에 대한 제5더티 비트(DT4=0)와 제6데이터 세그먼트(DATA5)에 대한 제6더티 비트(DT5=0)를 분석하고, 분석 결과에 따라 제5데이터 세그먼트(DATA4)와 제6데이터 세그먼트(DATA5)의 전송 금지를 지시하는 제1선택 신호(SEL1)를 MUX1(111)로 출력할 수 있고, 상기 분석 결과에 따라 제5더티 비트(DT4=0)와 제6더티 비트(DT5=0)의 전송 금지를 지시하는 제2선택 신호 (SEL2)를 MUX2(115)로 출력할 수 있다.
따라서, MUX1(111)는 제5데이터 세그먼트(DATA4)와 제6데이터 세그먼트 (DATA5)를 포함하는 제3데이터 그룹(SSEG2)을 출력하지 않는다. 또한, MUX2(115)는 제5더티 비트(DT4=0)와 제6더티 비트(DT5=0)를 출력하지 않는다. 즉, 분석되는 2개의 더티 비트들이 모두 논리 0일 때, 제5데이터 세그먼트(DATA4), 제6데이터 세그먼트(DATA5), 제5더티 비트(DT4=0), 및 제6더티 비트(DT5=0)는 시스템 버스(300)로 출력되지 않는다.
FSM(113)은 제7데이터 세그먼트(DATA6)에 대한 제7더티 비트(DT6=1)와 제8데이터 세그먼트(DATA7)에 대한 제8더티 비트(DT7=0)를 분석하고, 분석 결과에 따라 제7데이터 세그먼트(DATA6)와 제8데이터 세그먼트(DATA7)의 출력을 지시하는 제1선택 신호(SEL1)를 MUX1(111)로 출력할 수 있고, 상기 분석 결과에 따라 제7더티 비트(DT6=1)와 제8더티 비트(DT7=0)의 출력을 지시하는 제2선택 신호(SEL2)를 MUX2 (115)로 출력할 수 있다.
따라서, MUX1(111)는 제7데이터 세그먼트(DATA6)와 제8데이터 세그먼트 (DATA7)를 포함하는 제4데이터 그룹(SSEG3)을 제3더티 데이터 세그먼트(DSEG2)로서 출력할 수 있고, MUX2(115)는 제7더티 비트(DT6=1)와 제8더티 비트(DT7=0)를 포함하는 제3더티 비트 정보(DTI3)를 출력할 수 있다.
FSM(113)은 제4데이터 그룹(SSEG3)이 마지막 데이터 그룹임을 지시하는 제4최종 세그먼트 정보(FSI3=1)를 출력할 수 있고, 제4데이터 그룹(SSEG3), 즉 제3더티 데이터 세그먼트(DSEG2)가 3-번째 더티 데이터 세그먼트(DSEG2)임을 지시하는 제3위치 정보(SL3=3)를 출력할 수 있다.
상술한 바와 같이, 2개의 더티 비트들(DT4와 DT5)이 모두 0일 때, 2개의 더티 비트들(DT4와 DT5)에 해당하는 데이터 세그먼트들(DATA4와 DATA5)은 제1버스 마스터(110-1)에 의해 시스템 버스(300)로 출력되지 않는다. 또한, 제1버스 마스터 (110-1)는 데이터 세그먼트들(DATA4와 DATA5)과 관련된 데이터(DT4, DT5, 및 FSI2)를 시스템 버스(300)로 출력하지 않는다.
따라서, 제1버스 마스터(110-1)는 데이터(DATA)에 포함된 데이터 세그먼트들 중에서 업데이트가 필요한 데이터 세그먼트들만을 선택적으로 시스템 버스(300)로 전송할 수 있으므로 시스템 버스(300)로 전송되는 데이터의 압축 효율은 증가하는 효과가 있다. 이에 따라, 시스템 버스(300)의 버스 트래픽(bus traffic)로 감소하는 효과가 있다.
도 7은 본 발명의 다른 실시 예에 따른 도 1에 도시된 버스, 제1마스터, 및 제1슬레이브의 세부 블록도이고, 도 8은 도 7에 도시된 제1버스 마스터의 작동에 따라 도 4에 도시된 데이터가 처리되는 과정을 설명하기 위한 개념도이다.
도 1부터 도 7을 참조하면, 데이터 처리 시스템(10-2)은 제1마스터(100-1), 제1슬레이브(200-1), 및 시스템 버스(300)를 포함할 수 있다.
도 7에 도시된 MUX1(111-1)는 더티 데이터 세그먼트들(SCEGi)을 시스템 버스 (300)로 출력하고, FSM(113-1)이 더티 데이터 세그먼트들(SCEGi) 각각의 위치 정보 (DLSi)를 시스템 버스(300)로 출력하는 점을 제외하면, 도 7의 데이터 처리 시스템 (10-2)의 구조와 기능은 도 2의 데이터 처리 시스템(10-1)의 구조와 기능과 실질적으로 동일 또는 유사하다. 여기서, 위치 정보(DLSi)는 시스템 버스(300)로 전송될 데이터 세그먼트가 몇 번째 데이터 세그먼트인지를 나타내는 정보일 수 있다.
MUX1(111-1)는 프로세서(105)로부터 데이터(DATA)를 수신하고, 데이터(DATA)에 포함된 복수의 데이터 세그먼트들(DATA0~DATA7) 중에서 FSM(113-1)으로부터 출력된 제3선택 신호(SEL3)에 기초하여 선택된 제1데이터 세그먼트들을 더티 데이터 세그먼트들(SCEGi)로서 시스템 버스(300)로 출력할 수 있다.
도 8에 도시된 데이터(DATA)가 처리되는 과정과 도 6에 도시된 데이터 (DATA)가 처리되는 과정을 비교하면, 복수의 데이터 세그먼트들(DATA0~DATA7) 중에서 더티 데이터 세그먼트들(SCEGi)이 선택되는 방법이 다르다. 제1데이터 세그먼트 (DATA0)는 0-번째 데이터 세그먼트이고, 제2데이터 세그먼트(DATA1)는 첫-번째 데이터 세그먼트이고, 제8데이터 세그먼트(DATA7)는 7-번째 데이터 세그먼트라고 가정한다. 또한, 2개의 데이터 세그먼트들이 쌍을 이루어 출력된다고 가정한다.
도 1부터 도 8을 참조하면, 버스 마스터(110-1)는 복수의 더티 비트들 (DT0~DT7)을 분석할 수 있다.
FSM(113-1)은 제1데이터 세그먼트(DATA0)의 제1더티 비트(DT0=1)와 제2데이터 세그먼트(DATA1)의 제2더티 비트(DT1=0)를 분석하고, 분석 결과에 따라 제3선택 신호(SEL3)와 제4선택 신호(SEL4)를 생성할 수 있다.
MUX1(111-1)는, 제3선택 신호(SEL3)에 기초하여, 제1데이터 세그먼트(DATA0)를 출력하고 제2데이터 세그먼트(DATA1)를 출력하지 않는다. MUX2(115-1)는, 제4선택 신호(SEL4)에 응답하여, 제1더티 비트(DT0=1)를 출력하고 제2더티 비트(DT1=0)를 출력하지 않는다.
FSM(113-1)은 제3데이터 세그먼트(DATA2)의 제3더티 비트(DT2=0)와 제4데이터 세그먼트(DATA3)의 제4더티 비트(DT3=1)를 분석하고, 분석 결과에 따라 제3선택 신호(SEL3)와 제4선택 신호(SEL4)를 생성할 수 있다.
MUX1(111-1)는, 제3선택 신호(SEL3)에 기초하여, 제3데이터 세그먼트(DATA2)를 출력하지 않고 제4데이터 세그먼트(DATA3)를 출력한다. MUX2(115-1)는, 제4선택 신호(SEL4)에 응답하여, 제3더티 비트(DT2=0)를 출력하지 않고 제4더티 비트 (DT3=1)를 출력한다.
MUX1(111-1)는 제1데이터 세그먼트(DATA0)와 제4데이터 세그먼트(DATA3)를 포함하는 제1데이터 그룹을 제1더티 데이터 세그먼트(SCEG0)로서 출력할 수 있다. MUX2(115-1)는 제1더티 비트(DT0=1)와 제4더티 비트(DT3=1)를 포함하는 제1더티 비트 정보(DTI0)를 출력할 수 있다. 예컨대, 제1데이터 세그먼트(DATA0)와 제4데이터 세그먼트(DATA3)가 인접하지 않거나 제1데이터 세그먼트(DATA0)와 제4데이터 세그먼트(DATA3)의 전송 순서가 연속적이지 않을 때, 제1더티 비트(DT0=1)와 제4더티 비트(DT3=1)는 모두 더티로 설정되어야 한다.
제1더티 데이터 세그먼트(SCEG0)가 시스템 버스(300)로 전송될 마지막 더티 데이터 세그먼트가 아닐 때, FSM(113-1)은 로직 0을 갖는 제1최종 세그먼트 정보 (FSI0=0)를 생성하고 출력할 수 있다.
FSM(113-1)은 제1더티 데이터 세그먼트(SCEG0)에 포함된 제1데이터 세그먼트(DATA0)와 제4데이터 세그먼트(DATA3)의 위치 정보(DL0=0과 DL3=3)를 포함하는 제1위치 정보(DLS0)를 출력한다. 즉, FSM(113-1)은 제1데이터 세그먼트(DATA0)가 0-번째 데이터 세그먼트임을 지시하는 정보(DL0=0)와 제4데이터 세그먼트(DATA3)가 3-번째 데이터 세그먼트임을 지시하는 정보(DL3=3)를 출력한다.
즉, FSM(113-1)는 로직 1을 갖는 더티 비트들(DT0과 DT3)에 해당하는 데이터 세그먼트들(DATA0과 DATA3)의 출력을 지시하는 제3선택 신호(SEL3)와, 로직 1을 갖는 더티 비트들(DT0과 DT3)의 출력을 지시하는 제4선택 신호(SEL4)를 출력할 수 있다.
FSM(113-1)은 제5데이터 세그먼트(DATA4)의 제5더티 비트(DT4=0)와 제6데이터 세그먼트(DATA5)의 제6더티 비트(DT5=0)를 분석하고, 분석 결과에 따라 제3선택 신호(SEL3)와 제4선택 신호(SEL4)를 생성할 수 있다.
MUX1(111-1)는, 제3선택 신호(SEL3)에 응답하여, 제5데이터 세그먼트(DATA4)와 제6데이터 세그먼트(DATA5)를 출력하지 않는다. MUX2(115-1)는, 제4선택 신호 (SEL4)에 응답하여, 제5더티 비트(DT4=0)와 제6더티 비트(DT5=0)를 출력하지 않는다.
FSM(113-1)은 제7데이터 세그먼트(DATA6)의 제7더티 비트(DT6=1)와 제8데이터 세그먼트(DATA7)의 제8더티 비트(DT7=0)를 분석하고, 분석 결과에 따라 제3선택 신호(SEL3)와 제4선택 신호(SEL4)를 생성할 수 있다.
MUX1(111-1)은, 제3선택 신호(SEL3)에 응답하여, 제7데이터 세그먼트(DATA6)와 제8데이터 세그먼트(DATA7)를 출력할 수 있다. MUX2(115-1)는, 제4선택 신호 (SEL4)에 응답하여, 제7더티 비트(DT6=1)와 제8더티 비트(DT7=0)를 출력할 수 있다.
데이터(DATA)가 세그먼트 단위, 즉 2개의 데이터 세그먼트들 단위로 처리될 때, 마지막 세그먼트(SEG3)에 포함된 각 데이터 세그먼트(DATA6과 DATA7)의 각 더티 비트가 모두 로직 0이 아니면, 마지막 세그먼트(SEG3)는 시스템 버스(300)로 출력될 수 있다. 예컨대, 마지막 세그먼트(SEG3)에 포함된 제8데이터 세그먼트 (DATA7)의 제8더티 비트(DT7)는 로직 0이다. 그러나, FSM(113-1)은 제7데이터 세그먼트(DATA6)와 제8데이터 세그먼트(DATA7)의 출력을 지시하는 제3선택 신호(SEL3)를 생성하고, 제7더티 비트(DT6=1)와 제8더티 비트(DT7=0)의 출력을 지시하는 제4선택 신호(SEL4)를 생성한다.
따라서, 제7데이터 세그먼트(DATA6)와 제8데이터 세그먼트(DATA7)를 포함하는 제2더티 데이터 세그먼트(SCEG1)가 생성되고, 제7더티 비트(DT6=1)와 제8더티 비트(DT7=0)를 포함하는 제2더티 비트 정보(DTI1)가 생성된다. 제7데이터 세그먼트(DATA6)와 제8데이터 세그먼트(DATA7)가 인접하거나 제7데이터 세그먼트(DATA6)와 제8데이터 세그먼트(DATA7)의 전송 순서가 연속적인 때, 제7더티 비트(DT6=1)와 제8더티 비트(DT7=0) 중에서 적어도 하나는 더티로 설정되어야 한다.
제2더티 데이터 세그먼트(SCEG1)가 시스템 버스(300)로 전송될 마지막 더티 데이터 세그먼트일 때, FSM(113-1)은 로직 1을 갖는 제4최종 세그먼트 정보 (FSI3=1)를 출력할 수 있다.
FSM(113-1)은 제2더티 데이터 세그먼트(SCEG1)에 포함된 제7데이터 세그먼트 (DATA6)와 제8데이터 세그먼트(DATA7)의 위치 정보(DL6=6과 DL7=7)를 포함하는 제2위치 정보(DLS1)를 출력한다. 즉, FSM(113-1)은 제7데이터 세그먼트(DATA6)가 6-번째 데이터 세그먼트임을 지시하는 정보(DL6=6)와 제8데이터 세그먼트(DATA8)가 7-번째 데이터 세그먼트임을 지시하는 정보(DL7=7)를 출력한다.
제1버스 마스터(110-1)는 데이터(DATA)에 포함된 데이터 세그먼트들 중에서 업데이트가 필요한 데이터 세그먼트들만을 선택적으로 시스템 버스(300)로 전송할 수 있으므로, 시스템 버스(300)로 전송되는 데이터의 압축 효율은 증가하는 효과가 있다. 이에 따라, 시스템 버스(300)의 버스 트래픽(bus traffic)로 감소하는 효과가 있다.
제1버스 슬레이브(210-1)는 디먹싱 블록(215-1)을 포함하고, 디먹싱 블록 (215-1)은 더티 데이터 세그먼트들(SCEGi), 더티 비트 정보(DTIi), 최종 세그먼트 정보(FSIi), 및 위치 정보(DLSi)를 분석하고, 분석 결과에 따라 저장 장치(220)로 전송(또는 라이트)될 라이트 데이터(WDATA2)를 생성할 수 있다.
도 9는 본 발명의 실시 예에 따른 제1버스 마스터의 작동 방법을 설명하기 위한 플로우 차트이다.
도 1부터 도 9를 참조하면, 제1버스 마스터(110-1)는 복수의 데이터 세그먼트들(DATA0~DATA(2N-1))과 복수의 데이터 세그먼트들(DATA0 내지 DATA(2N-1))에 대한 더티 비트들(DT0 내지 DT(2N-1))을 수신할 수 있다(S100). 버스 마스터(110-1)는 더티 비트들(DT0 내지 DT(2N-1))을 분석할 수 있다(S110). 예컨대, 버스 마스터 (110-1)는 더티 비트가 로직 0인지 또는 로직 1인지를 분석할 수 있다.
버스 마스터(110-1)는, 복수의 데이터 세그먼트들(DATA0 내지 DATA(2N-1)) 중에서, 분석 결과에 기초하여 선택된 제1데이터 세그먼트들을 더티 데이터 세그먼트들(DSEGi 또는 SCEGi)로서 시스템 버스(300)로 출력하고, 더티 데이터 세그먼트들 (DSEGi 또는 SCEGi)에 대한 위치 정보(SLi 또는 DLSi)를 시스템 버스(300)로 출력할 수 있다(S120).
도 10은 본 발명의 실시 예에 따른 데이터 처리 시스템의 작동 방법을 설명하기 위한 플로우 차트이다. 도 1부터 도 10을 참조하면, 제1버스 마스터(110-1)는 복수의 데이터 세그먼트들(DATA0 내지 DATA(2N-1))과 복수의 데이터 세그먼트들 (DATA0 내지 DATA(2N-1))에 대한 더티 비트들(DT0 내지 DT(2N-1))을 포함하는 데이터(DATA)를 수신할 수 있다(S200). 버스 마스터(110-1)는 더티 비트들(DT0 내지 DT(2N-1))을 분석할 수 있다(S210).
버스 마스터(110-1)는, 복수의 데이터 세그먼트들(DATA0 내지 DATA(2N-1)) 중에서, 분석의 결과에 기초하여 선택된 제1데이터 세그먼트들을 더티 데이터 세그먼트들(DSEGi 또는 SCEGi)로서 시스템 버스(300)로 출력하고, 더티 데이터 세그먼트들(DSEGi 또는 SCEGi)에 대한 위치 정보(SLi 또는 DLSi)를 시스템 버스(300)로 출력할 수 있다(S220).
제1버스 슬레이브(210-1)는 더티 데이터 세그먼트들(DSEGi 또는 SCEGi)과 위치 정보(SLi 또는 DLSi)를 이용하여 생성된 데이터(WDATA2)를 저장 장치(220)로 버스트 전송(burst transfer)할 수 있다(S230). 예컨대, 데이터(WDATA1 또는 WDATA2)는 업데이트를 위한 데이터일 수 있다.
도 11은 본 발명의 데이터 처리 시스템을 포함하는 시스템의 일 실시 예를 나타내는 블록도이다. 도 1부터 도 11을 참조하면, 시스템(400)은 모바일 컴퓨팅 장치로 구현될 수 있다. 시스템(400)은 데이터 처리 시스템(10), 디스플레이(420), 무선 송수신기(430), 및 입력 장치(440)를 포함할 수 있다. 실시 예에 따라, 데이터 처리 시스템(10)은 패키지로 구현될 수 있고, 상기 패키지는 시스템 보드에 마운트될 수 있다.
디스플레이(420)는, 복수의 마스터들(100-1~100-m) 중에서 적어도 하나의 제어에 따라, 저장 장치(220)로부터 출력된 데이터를 디스플레이할 수 있다. 무선 송수신기(430)는 안테나(ANT)를 통해 외부 장치와 무선 신호를 주거나 받을 수 있다. 예컨대, 무선 송수신기(430)는 안테나(ANT)를 통해 수신된 무선 신호를 복수의 마스터들(100-1~100-m) 중에서 적어도 하나에 의해 처리되도록 변환할 수 있다. 무선 송수신기(430)는 복수의 마스터들(100-1~100-m) 중에서 적어도 하나로부터 출력된 신호를 무선 신호로 변환하고, 변환된 무선 신호를 안테나(ANT)를 통하여 외부로 전송할 수 있다.
입력 장치(440)는 복수의 마스터들(100-1~100-m) 중에서 적어도 하나의 작동을 제어할 수 있는 제어 신호, 또는 복수의 마스터들(100-1~100-m) 중에서 적어도 하나에 의해 처리될 데이터를 입력할 수 있는 장치일 수 있다.
도 12는 본 발명의 데이터 처리 시스템을 포함하는 시스템의 다른 실시 예를 나타내는 블록도이다. 도 1부터 10, 및 도 12를 참조하면, 시스템(500)은 PC, 태블릿 PC, e-리더(e-reader), PDA, PMP, MP3 플레이어, 또는 MP4 플레이어로 구현될 수 있다.
시스템(500)은 시스템(500)의 전반적인 동작을 제어하기 위한 데이터 처리 시스템(10), 입력 장치(520), 및 디스플레이(530)를 포함할 수 있다. 입력 장치 (520)는 복수의 마스터들(100-1~100-m) 중에서 적어도 하나의 작동을 제어할 수 있는 제어 신호, 또는 복수의 마스터들(100-1~100-m) 중에서 적어도 하나에 의해 처리될 데이터를 입력할 수 있는 장치일 수 있다.
디스플레이(530)는, 복수의 마스터들(100-1~100-m) 중에서 적어도 하나의 제어 또는 입력 장치(520)에 의해 발생한 입력 신호에 따라 저장 장치(220)에 저장된 데이터를 디스플레이할 수 있다.
도 13은 본 발명의 데이터 처리 시스템을 포함하는 시스템의 또 다른 실시 예를 나타내는 블록도이다. 도 1부터 도 10, 및 도 13을 참조하면, 시스템(600)은 메모리 카드(memory card) 또는 스마트 카드(smart card)로 구현될 수 있다.
시스템(600)은 데이터 처리 시스템(10)과 카드 인터페이스(610)를 포함할 수 있다. 데이터 처리 시스템(10)에 포함된 버스 슬레이브(210-1)는 저장 장치(220)와 카드 인터페이스(620) 사이에서 데이터의 교환을 제어할 수 있다.
실시 예에 따라, 카드 인터페이스(620)는 SD(secure digital) 카드 인터페이스 또는 멀티미디어 카드(multimedia card(MMC)) 인터페이스일 수 있으나 이에 한정되는 것은 아니다. 카드 인터페이스(620)는 호스트(HOST)의 프로토콜에 따라 호스트(HOST)와 데이터 처리 시스템(10)의 저장 장치(220) 사이에서 데이터 교환을 인터페이싱할 수 있다. 시스템(600)은 컴퓨터, 디지털 카메라, 디지털 오디오 플레이어, 이동 전화기, 콘솔 비디오 게임 하드웨어, 또는 디지털 셋-탑 박스와 같은 호스트(HOST)와 접속될 수 있다.
도 14는 본 발명의 데이터 처리 시스템을 포함하는 시스템의 또 다른 실시 예를 나타내는 블록도이다. 도 1부터 도 10, 및 도 14를 참조하면, 시스템(700)은 디지털 카메라 또는 디지털 카메라가 부착된 모바일 컴퓨팅 장치로 구현될 수 있다. 시스템(700)은 시스템(700)의 전반적인 동작을 제어하는 데이터 처리 시스템 (10), 이미지 센서(720), 및 디스플레이(730)를 포함할 수 있다.
이미지 센서(720)는 광학 이미지를 디지털 신호로 변환할 수 있다. 변환된 디지털 신호는, 데이터 처리 시스템(10)에 포함된 복수의 마스터들(100-1~100-m) 중에서 적어도 하나의 제어에 따라, 저장 장치(220)에 저장되거나 디스플레이(730)를 통하여 디스플레이될 수 있다. 또한, 저장 장치(220)로부터 출력된 디지털 신호는, 복수의 마스터들(100-1~100-m) 중에서 적어도 하나의 제어에 따라, 디스플레이 (730)를 통해 디스플레이될 수 있다.
본 발명은 도면에 도시된 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
100-1~100-m: 마스터
110-1~110-m: 버스 마스터
111, 111-1: 제1멀티플렉서
113, 113-1: 유한 상태 머신
115, 115-1: 제2멀티플렉서
200-1~200-k: 슬레이브
210-1~210-k: 버스 슬레이브
220: 저장 장치
DATA0~DATA(2N-1): 복수의 데이터 세그먼트들
DSEGi, SCEGi: 더티 데이터 세그먼트들
SLi, DLSi: 위치 정보
300: 시스템 버스

Claims (10)

  1. 데이터 세그먼트에 대한 더티 비트들을 수신하여 분석하되,
    상기 더티 비트들 각각은 대응하는 데이터 세그먼트가 업데이트되어야 하는지 여부를 나타내고,
    상기 더티 비트들의 분석 결과에 응답하여, 세그먼트 단위로 출력되는 상기 데이터 세그먼트로부터 특정 데이터 세그먼트를 식별하고,
    상기 더티 비트들의 분석 결과에 응답하여, 제1 선택 신호, 제2 선택 신호, 상기 특정 데이터 세그먼트 각각의 위치 정보를 출력하는 유한 상태 머신(finite state machine(FSM));
    상기 제1 선택 신호에 응답하여, 상기 데이터 세그먼트 중 상기 특정 데이터 세그먼트를 버스에 출력하는 제1 멀티플렉서; 및
    상기 제2 선택 신호에 응답하여, 상기 특정 데이터 세그먼트 각각의 더티 비트를 상기 버스에 출력하는 제2 멀티플렉서를 포함하는 시스템.
  2. 제1항에 있어서,
    상기 세그먼트 단위는 AMBA®(advanced microcontroller bus architecture) AXI(Advanced eXtensible Interface) 프로토콜의 스펙에서 정의된 비트(beat)인 시스템.
  3. 제1항에 있어서,
    상기 위치 정보는 상기 데이터 세그먼트 내 상기 특정 데이터 세그먼트 각각의 위치를 나타내는 시스템.
  4. 제1항에 있어서,
    상기 FSM은 상기 세그먼트의 마지막 세그먼트에 대한 최종 세그먼트 정보를 출력하는 것을 더 포함하는 시스템.
  5. 제1항에 있어서,
    상기 데이터 세그먼트들과 상기 더티 비트들을 출력하는 프로세서를 더 포함하고,
    상기 FSM은, 상기 더티 비트들 모두가 상기 프로세서에 의해 액세스되는 캐시에 저장된 상기 데이터 세그먼트들 모두가 변경되지 않음을 나타낼 때, 상기 세그먼트의 생성을 금지하는 상기 제1 선택 신호를 생성하고 상기 위치 정보를 출력하지 않는 시스템.
  6. 제1항에 있어서,
    제2 멀티플렉서와, 제1 데이터 세그먼트들과 상기 더티 비트들을 출력하는 프로세서를 더 포함하고,
    상기 FSM은 상기 분석 결과에 따라 제2 선택 신호를 생성하고, 상기 제2 멀티플렉서는, 상기 제2 선택 신호에 기초하여, 상기 더티 비트들을 상기 버스로 출력할지를 결정하고,
    상기 FSM은, 상기 더티 비트들 모두가 상기 프로세서에 의해 액세스되는 캐시에 저장된 상기 데이터 세그먼트들 모두가 변경되지 않음을 나타낼 때, 상기 더티 비트들의 출력을 금지하는 상기 제2 선택 신호를 생성하고 상기 위치 정보를 출력하지 않는 시스템.
  7. 버스;
    상기 버스에 접속된 슬레이브; 및
    상기 버스에 접속되고, 데이터를 세그먼트 단위로 상기 버스를 통해 상기 슬레이브로 전송하는 마스터를 포함하고,
    상기 마스터는,
    데이터 세그먼트에 대한 더티 비트들을 수신하여 분석하되,
    상기 더티 비트들 각각은 대응하는 데이터 세그먼트가 업데이트되어야 하는지 여부를 나타내고,
    상기 더티 비트들의 분석 결과에 응답하여, 세그먼트로 출력되는 상기 데이터 세그먼트로부터 특정 데이터 세그먼트를 식별하고,
    상기 더티 비트들의 분석 결과에 응답하여, 제1 선택 신호, 상기 특정 데이터 세그먼트 각각의 위치 정보를 출력하는 유한 상태 머신(finite state machine(FSM)); 및
    상기 FSM 및 상기 버스 사이에 배치되고, 상기 제1 선택 신호에 응답하여, 상기 세그먼트의 상기 데이터 세그먼트 중 상기 특정 데이터 세그먼트를 버스에 출력하는 제1 멀티플렉서를 포함하고,
    상기 슬레이브는 스토리지 장치를 포함하고, 및
    상기 슬레이브는 상기 세그먼트를 수신하고, 상기 세그먼트에 기초하여 상기 스토리지 장치에 상기 데이터를 라이트하는 데이터 처리 시스템.
  8. 제7항에 있어서,
    상기 세그먼트 단위는 AMBA® AXI 프로토콜의 스펙에서 정의된 비트(beat)인 데이터 처리 시스템.
  9. 제7항에 있어서,
    상기 데이터 세그먼트는 복수의 그룹으로 분할되고,
    상기 특정 데이터 세그먼트는 상기 복수의 그룹중 어느 하나에 위치하고,
    상기 위치 정보는 상기 복수의 그룹 내에서 상기 복수의 그룹 중 어느 하나의 위치를 나타내고,
    상기 FSM은 만약 상기 복수의 그룹 중 상기 어느 하나의 상기 데이터 세그먼트의 상기 더티 비트 중 적어도 하나가 더티로 설정되는 경우, 상기 복수의 그룹 중 상기 어느 하나의 모든 데이터 세그먼트를 상기 특정 데이터 세그먼트로 식별하도록 구성되는 것을 더 포함하는 데이터 처리 시스템.
  10. 제7항에 있어서,
    상기 위치 정보는 상기 데이터 내의 상기 데이터 세그먼트의 시퀀스에서 상기 특정 데이터 세그먼트 각각의 위치를 나타내고,
    상기 특정 데이터 세그먼트는 상기 데이터 내에서 인접하지 않는 데이터 처리 시스템.
KR1020150044528A 2015-03-30 2015-03-30 슬레이브와 데이터 통신을 할 수 있는 마스터와 상기 마스터를 포함하는 데이터 처리 시스템 KR102410692B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020150044528A KR102410692B1 (ko) 2015-03-30 2015-03-30 슬레이브와 데이터 통신을 할 수 있는 마스터와 상기 마스터를 포함하는 데이터 처리 시스템
US15/067,166 US10108568B2 (en) 2015-03-30 2016-03-10 Master capable of communicating with slave and system including the master

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150044528A KR102410692B1 (ko) 2015-03-30 2015-03-30 슬레이브와 데이터 통신을 할 수 있는 마스터와 상기 마스터를 포함하는 데이터 처리 시스템

Publications (2)

Publication Number Publication Date
KR20160116594A KR20160116594A (ko) 2016-10-10
KR102410692B1 true KR102410692B1 (ko) 2022-06-17

Family

ID=57017212

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150044528A KR102410692B1 (ko) 2015-03-30 2015-03-30 슬레이브와 데이터 통신을 할 수 있는 마스터와 상기 마스터를 포함하는 데이터 처리 시스템

Country Status (2)

Country Link
US (1) US10108568B2 (ko)
KR (1) KR102410692B1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106897281B (zh) 2015-12-17 2020-08-14 阿里巴巴集团控股有限公司 一种日志分片方法和装置
CN106844264A (zh) 2016-12-30 2017-06-13 广东欧珀移动通信有限公司 一种移动终端
KR102563760B1 (ko) 2018-02-22 2023-08-07 에스케이하이닉스 주식회사 인터페이스 유닛 및 그것의 동작방법
KR20220125897A (ko) * 2021-03-05 2022-09-15 삼성전자주식회사 시스템 온 칩 및 시스템 온 칩에 포함된 연결 버스
CN113032318B (zh) * 2021-03-30 2022-08-30 纵目科技(上海)股份有限公司 一种基于平行总线的通讯***
CN113434460B (zh) * 2021-08-26 2022-01-11 长沙海格北斗信息技术有限公司 SoC架构中的多总线拓扑***及总线互连方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040225829A1 (en) * 2003-05-09 2004-11-11 Satoru Akiyama Semiconductor device

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3356549B2 (ja) 1994-06-29 2002-12-16 株式会社東芝 紙葉類の供給装置
KR19980032776A (ko) 1996-10-16 1998-07-25 가나이 츠토무 데이타 프로세서 및 데이타 처리시스템
US6421764B2 (en) * 1998-08-27 2002-07-16 Ati Technologies, Inc. Method and apparatus for efficient clearing of memory
JP2001222467A (ja) 2000-02-07 2001-08-17 Matsushita Electric Ind Co Ltd キャッシュ装置
GB2373595B (en) 2001-03-15 2005-09-07 Italtel Spa A system of distributed microprocessor interfaces toward macro-cell based designs implemented as ASIC or FPGA bread boarding and relative common bus protocol
US20080288725A1 (en) 2007-05-14 2008-11-20 Moyer William C Method and apparatus for cache transactions in a data processing system
JP2009217310A (ja) 2008-03-07 2009-09-24 Victor Co Of Japan Ltd メモリアクセス方法及びメモリアクセス装置
JP2011100269A (ja) 2009-11-05 2011-05-19 Renesas Electronics Corp キャッシュシステム
KR101663013B1 (ko) * 2010-01-15 2016-10-06 삼성전자주식회사 코드 주입 공격을 감지하는 장치 및 방법
JP2012203560A (ja) 2011-03-24 2012-10-22 Toshiba Corp キャッシュメモリおよびキャッシュシステム
US20120254541A1 (en) 2011-04-04 2012-10-04 Advanced Micro Devices, Inc. Methods and apparatus for updating data in passive variable resistive memory
KR20130116705A (ko) 2012-04-16 2013-10-24 삼성전자주식회사 자기 랜덤 액세스 메모리 장치 및 어드레싱 방법
KR102029806B1 (ko) * 2012-11-27 2019-10-08 삼성전자주식회사 선입선출 버퍼를 포함하는 시스템 온 칩, 응용 프로세서 및 그것을 포함하는 모바일 장치
US9336097B2 (en) * 2014-02-27 2016-05-10 International Business Machines Corporation Salvaging hardware transactions

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040225829A1 (en) * 2003-05-09 2004-11-11 Satoru Akiyama Semiconductor device

Also Published As

Publication number Publication date
KR20160116594A (ko) 2016-10-10
US10108568B2 (en) 2018-10-23
US20160292107A1 (en) 2016-10-06

Similar Documents

Publication Publication Date Title
KR102410692B1 (ko) 슬레이브와 데이터 통신을 할 수 있는 마스터와 상기 마스터를 포함하는 데이터 처리 시스템
US9244872B2 (en) Configurable communications controller
TW201915756A (zh) 主從式系統、指令執行方法與資料存取方法
US9632895B2 (en) Apparatus, system and method for a common unified debug architecture for integrated circuits and SoCs
US20120266029A1 (en) Arrangement for processing trace data information, integrated circuits and a method for processing trace data information
US10162780B2 (en) PCI express switch and computer system using the same
US9330031B2 (en) System and method for calibration of serial links using a serial-to-parallel loopback
KR102391385B1 (ko) 내장형 로직 분석기 및 이를 포함하는 집적 회로
US8443122B2 (en) Asynchronous upsizing circuit in data processing system
US9852107B2 (en) Techniques for scalable endpoint addressing for parallel applications
CN101510185A (zh) 一种高速总线向低速总线写入、读取数据的方法和装置
US20140025930A1 (en) Multi-core processor sharing li cache and method of operating same
US20170004084A1 (en) Cache coherent system including master-side filter and data processing system including same
CN114860329A (zh) 动态一致性偏置配置引擎及方法
US20180081564A1 (en) Memory subsystem with wrapped-to-continuous read
CN101320344B (zh) 一种多核或众核处理器功能验证设备及方法
US8582709B2 (en) Bandwidth synchronization circuit and bandwidth synchronization method
CN112559410A (zh) 一种基于fpga的lio总线扩展uart外设***及方法
CN110377534B (zh) 数据处理方法及装置
CN115952132B (zh) 异步桥、soc、电子组件、电子设备及芯片设计方法
CN104951268A (zh) 一种基于cpci扩展高性能显卡的实现方法
US20110197008A1 (en) Card host lsi and set device including the lsi
US9442788B2 (en) Bus protocol checker, system on chip including the same, bus protocol checking method
US10832132B2 (en) Data transmission method and calculation apparatus for neural network, electronic apparatus, computer-readable storage medium and computer program product
WO2021089303A1 (en) Protocol translator module system and method using said protocol translator module system

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant