KR102385541B1 - 버스 시스템 - Google Patents

버스 시스템 Download PDF

Info

Publication number
KR102385541B1
KR102385541B1 KR1020170127286A KR20170127286A KR102385541B1 KR 102385541 B1 KR102385541 B1 KR 102385541B1 KR 1020170127286 A KR1020170127286 A KR 1020170127286A KR 20170127286 A KR20170127286 A KR 20170127286A KR 102385541 B1 KR102385541 B1 KR 102385541B1
Authority
KR
South Korea
Prior art keywords
function block
command
slave
bus
slave function
Prior art date
Application number
KR1020170127286A
Other languages
English (en)
Other versions
KR20190037690A (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 KR1020170127286A priority Critical patent/KR102385541B1/ko
Priority to US15/943,647 priority patent/US10769085B2/en
Priority to TW107121158A priority patent/TWI750386B/zh
Priority to CN201811028101.4A priority patent/CN109582634B/zh
Publication of KR20190037690A publication Critical patent/KR20190037690A/ko
Application granted granted Critical
Publication of KR102385541B1 publication Critical patent/KR102385541B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • 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
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/24Resetting means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0745Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in an input/output transactions management context
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1441Resetting or repowering
    • 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/10Program control for peripheral devices
    • 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
    • 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/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/82Protecting input, output or interconnection devices
    • G06F21/85Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0721Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3027Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0038System on Chip

Abstract

버스 시스템이 제공된다. 버스 시스템은, 슬레이브 기능 블록 및 상기 슬레이브 기능 블록에 대해 제1 커맨드를 전송하는 마스터 기능 블록을 포함하고, 상기 슬레이브 기능 블록은, 이 상기 제1 커맨드를 수신할 수 없거나 상기 제1 커맨드에 대응하는 응답 신호를 전송할 수 없는 상태인 경우, 상기 제1 커맨드를 상기 슬레이브 기능 블록 대신 수신하고 상기 제1 커맨드에 대응하는 더미(dummy) 신호를 상기 마스터 기능 블록에 전송하는 제1 버스 보호기를 포함한다.

Description

버스 시스템{BUS SYSTEM}
본 발명은 버스 시스템에 관한 것이다.
최근 서로 다른 기능을 수행하는 복수의 기능 블록들(예를 들어, IP(Intellectual Property) 등)을 하나의 칩 상에 집적하는 시스템 온 칩(System On Chip; SoC)의 사용이 보편화되고 있다. 시스템 온 칩 내에는 복수의 기능 블록들 간에 커맨드, 데이터 등을 전송하는 버스 시스템이 내장되어 있다.
한편, 복수의 기능 블록들 중 어느 하나의 기능 블록에 문제가 생겨 해당 기능 블록의 동작이 정지된 경우, 시스템 온 칩 전체를 리셋(reset)해야 문제의 복구가 가능 했었다. 따라서, 시스템 온 칩 내의 다른 부분에 영향을 미치지 않도록 하면서 문제가 생긴 기능 블록만 리셋 시키는 기술의 필요성이 대두되고 있다.
본 발명이 해결하고자 하는 기술적 과제는 버스 시스템 내에 포함된 어느 하나의 기능 블록(IP Block)의 동작이 멈췄을 때, 버스 시스템 내의 다른 부분에 문제가 발생하지 않도록 버스 시스템 내에 남아있는 커맨드를 정리하는 방법을 제공하는 것이다.
본 발명이 해결하고자 하는 다른 기술적 과제는 버스 시스템 내에 포함된 어느 하나의 기능 블록의 동작이 멈췄을 때, 문제가 생긴 기능 블록만 리셋하는 방법을 제공하는 것이다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
상기 기술적 과제를 달성하기 위해 몇몇 실시예에서 버스 시스템은, 슬레이브 기능 블록 및 상기 슬레이브 기능 블록에 대해 제1 커맨드를 전송하는 마스터 기능 블록을 포함하고, 상기 슬레이브 기능 블록은, 이 상기 제1 커맨드를 수신할 수 없거나 상기 제1 커맨드에 대응하는 응답 신호를 전송할 수 없는 상태인 경우, 상기 제1 커맨드를 상기 슬레이브 기능 블록 대신 수신하고 상기 제1 커맨드에 대응하는 더미(dummy) 신호를 상기 마스터 기능 블록에 전송하는 제1 버스 보호기를 포함한다.
몇몇 실시예에서, 버스 시스템은, 복수의 기능 블록과 연결된 버스 및 시스템 매니저를 포함하고, 상기 시스템 매니저는, 상기 복수의 기능 블록 중 제1 슬레이브 기능 블록의 동작이 정지된 경우, 상기 제1 슬레이브 기능 블록에 대한 제1 커맨드가 상기 버스 내에 존재하지 않는다고 인식하면 상기 슬레이브 기능 블록을 리셋한다.
몇몇 실시예에서, 버스 시스템은, 제1 버스 보호기를 포함하는 제1 슬레이브 기능 블록, 제2 버스 보호기를 포함하는 제2 슬레이브 기능 블록 및 제1 커맨드를 상기 제1 슬레이브 기능 블록에 전송하고 제2 커맨드를 상기 제2 슬레이브 기능 블록에 전송하는 마스터 기능 블록을 포함하고, 상기 제1 버스 보호기는, 상기 제1 슬레이브 기능 블록이 상기 제1 커맨드를 수신할 수 없거나 상기 제1 커맨드에 대응하는 응답 신호를 전송할 수 없는 상태인 경우 상기 제1 커맨드를 상기 제1 슬레이브 기능 블록 대신 수신하고, 상기 제1 커맨드에 대응하는 제1 더미 신호를 상기 마스터 기능 블록에 전송하고, 상기 제2 슬레이브 기능 블록은, 상기 제2 커맨드에 대응하는 응답 신호를 상기 마스터 기능 블록에 전송한다.
기타 실시예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
도 1은 몇몇 실시예에 따른 버스 시스템의 블록도이다.
도 2는 몇몇 실시예에 따라 동작이 정지된 슬레이브 기능 블록을 리셋하는 방법의 일례를 설명하기 위한 흐름도이다.
도 3은 몇몇 실시예에 따라 동작이 정지된 슬레이브 기능 블록을 리셋하는 방법의 일례를 설명하기 위해 도시한 도면이다.
도 4는 몇몇 실시예에 따라 동작이 정지된 슬레이브 기능 블록을 리셋하는 방법의 일례를 설명하기 위해 도시한 도면이다.
도 5는 몇몇 실시예에 따라 동작이 정지된 슬레이브 기능 블록을 리셋하는 방법의 일례를 설명하기 위해 도시한 도면이다.
도 6은 몇몇 실시예에 따라 동작이 정지된 슬레이브 기능 블록을 리셋하는 방법의 일례를 설명하기 위해 도시한 도면이다.
도 7은 몇몇 실시예에 따라 동작이 정지된 슬레이브 기능 블록을 인식하는 방법의 일례를 설명하기 위한 도면이다.
도 8은 몇몇 실시예에 따라 동작이 정지된 슬레이브 기능 블록을 리셋하는 방법의 일례를 설명하기 위해 도시한 도면이다.
도 9는 몇몇 실시예에 따라 동작이 정지된 슬레이브 기능 블록을 리셋하는 방법의 일례를 설명하기 위해 도시한 도면이다.
도 10은 몇몇 실시예에 따라 복수의 슬레이브 기능 블록 중 어느 하나의 슬레이브 기능 블록의 동작이 정지된 경우 동작이 정지된 슬레이브 기능 블록을 리셋하는 방법의 일례를 설명하기 위해 도시한 도면이다.
도 11은 몇몇 실시예에 따라 복수의 슬레이브 기능 블록 중 어느 하나의 슬레이브 기능 블록의 동작이 정지된 경우 동작이 정지된 슬레이브 기능 블록을 리셋하는 방법의 일례를 설명하기 위해 도시한 도면이다.
도 12는 몇몇 실시예에 따라 복수의 슬레이브 기능 블록 중 어느 하나의 슬레이브 기능 블록의 동작이 정지된 경우 동작이 정지된 슬레이브 기능 블록을 리셋하는 방법의 일례를 설명하기 위해 도시한 도면이다.
도 13은 몇몇 실시예에 따라 마스터 기능 블록이 복수의 커맨드를 전송하던 중 동작이 정지된 경우, 동작이 정지된 마스터 기능 블록을 리셋하는 방법의 일례를 설명하기 위한 흐름도이다.
도 1은 몇몇 실시예에 따른 버스 시스템의 블록도이다.
도 1을 참조하면, 버스 시스템(1)은 복수의 기능 블록(예를 들어, 마스터 기능 블록(110) 및 슬레이스 기능 블록(120)), 시스템 매니저(System manager, 130) 및 버스(140)를 포함할 수 있다. 도 1에 도시된 구성요소들은 버스 시스템(1)을 구현하는데 있어서 필수적인 것은 아니어서, 위에서 열거된 구성요소들 보다 많거나 또는 적은 구성 요소들을 가질 수 있다.
몇몇 실시예에 따르면, 버스 시스템(1)은 모바일 장치를 위한 버스 시스템일 수도 있고, 차량용 장치를 위한 버스 시스템일 수도 있다. 모바일 장치는 이동 전화기, 스마트 폰(smart phone), EDA(enterprise digital assistant), 디지털 스틸 카메라(digital still camera), 디지털 비디오 카메라(digital video camera), PND(personal navigation device 또는 portable navigation device), 모바일 인터넷 장치(mobile internet device(MID)), 웨어러블 컴퓨터, 사물 인터넷(Internet of Things; IOT) 장치, 만물 인터넷(Internet of Everything; IOE) 장치 또는 e-book 등으로 구현될 수 있다. 차량용 장치는 차량에서 사용되는 전자 장치일 수 있다.
기능 블록은 IP(Intellectual Property) 블록을 의미한다. 예를 들어, 복수의 기능 블록은 마스터 기능 블록(Master IP Block, 110) 및 슬레이브 기능 블록(Slave IP Block, 120)을 포함할 수 있다.
마스터 기능 블록(110)은, 커맨드를 발생시키는 기능 블록으로, 예를 들어 응용프로그램 칩(Application Chip), 영상처리 프로세서, 오디오 코덱, 통신 모뎀(Mobile station Modem) 등이 마스터 기능 블록(110)이 될 수 있다.
슬레이브 기능 블록(120)은 마스터 기능 블록(110)에서 발생한 커맨드를 수신하는 기능 블록 또는 마스터 기능 블록(110)에서 발생한 커맨드의 타겟(target)이 되는 기능 블록으로, 예를 들어 센서 허브(sensor hub), 메모리 등이 될 수 있다.
즉, 커맨드를 발생시키는 주체가 되는 기능 블록이 마스터 기능 블록(110)이 될 수 있고, 발생된 커맨드의 타겟(target)이 되는 기능 블록이 슬레이브 기능 블록(120)이 될 수 있다.
따라서, 마스터 기능 블록(110)이었던 특정 기능 블록이 경우에 따라 슬레이브 기능 블록(120)이 될 수도 있고, 슬레이브 기능 블록(120)이었던 특정 기능 블록이 경우에 따라 마스터 기능 블록(110)이 될 수도 있다.
시스템 매니저(130)는 버스 시스템(1) 내의 모든 동작을 관장하는 기능 블록으로, 예를 들어 시스템 매니저(130)는 중앙 처리 장치, 마이크로 컨트롤러, 마이크로 프로세서, 디지털 신호처리 프로세서 등일 수 있다.
몇몇 실시예에 따르면, 시스템 매니저(130)는 버스 시스템(1) 내에 포함된 기능 블록(예를 들어, 마스터 기능 블록(110) 또는 슬레이브 기능 블록(120))의 동작이 정지된 상태인지를 인식할 수 있다. 이에 대한 자세한 설명은, 도 7을 참조하여 좀더 자세히 후술한다.
여기서, 동작이 정지된 상태라 함은, 기능 블록이 커맨드 또는 커맨드에 대응하는 응답 신호를 전송할 수 없는 상태이다.
일례로, 마스터 기능 블록(110)의 동작이 정지된 상태는 마스터 기능 블록(110)이 슬레이브 기능 블록(120)에 대한 커맨드를 생성하거나 전송할 수 없는 상태일 수 있다..
다른 일례로, 슬레이브 기능 블록(120)의 동작이 정지된 상태는, 슬레이브 기능 블록(120)이 마스터 기능 블록(110)에서 전송하여 버스(140)에 존재하는 커맨드를 수신할 수 없거나 수신된 커맨드에 대응하는 응답 신호를 마스터 기능 블록(110)에 전송할 수 없는 상태일 수 있다.
시스템 매니저(130)가 커맨드를 발생시키는 경우 시스템 매니저(130)도 마스터 기능 블록(110)이 될 수도 있다. 다만, 이해의 편의를 위해 시스템 매니저(130)는 마스터 기능 블록(110)과 구분하여 설명한다.
복수의 기능 블록(예를 들어, 마스터 기능 블록(110) 및 슬레이스 기능 블록(120)) 각각은 버스 보호기(210, 220)를 포함할 수 있다. 버스 보호기(210, 220)는 기능 블록의 동작이 멈춘 경우, 버스(140) 내의 커맨드를 정리하는 기능을 수행할 수 있다.
일례로, 마스터 기능 블록(110)에 포함된 버스 보호기(210)는 마스터 기능 블록(110)의 동작이 정지된 경우 슬레이브 기능 블록(120)에서 전송된 응답 신호를 마스터 기능 블록(110) 대신 수신할 수 있다.
다른 일례로, 슬레이브 기능 블록(120)에 포함된 버스 보호기(220)는 슬레이브 기능 블록(120)의 동작이 정지된 경우 마스터 기능 블록(110)에서 전송된 커맨드를 수신하여 응답 신호를 생성할 수 있고, 상기 응답 신호를 상기 커맨드를 전송한 마스터 기능 블록(110)에게 전송할 수 있다.
마스터 기능 블록(110), 슬레이브 기능 블록(120) 및 시스템 매니저(130)는 버스(140)를 통해 서로 신호, 커맨드 또는 데이터를 주고 받을 수 있다. 즉, 버스(140)는 마스터 기능 블록(110)과 슬레이브 기능 블록(120)이 서로 연결되도록 제어할 수 있다. 예를 들어, 버스(140)는 PCI 버스(Peripheral Component Interconnect Bus), PCI 익스프레스(PCI Express; PCIe) 버스, AMBA(Advanced Microcontroller Bus Architecture), AHB(Advanced High Performance Bus), APB(Advanced Peripheral Bus), AXI(Advanced Extensible Interface) 버스 및 이들의 어느 조합으로부터 선택된 적어도 하나로 구현될 수 있으나 이에 한정되는 것은 아니다.
도 1에는 버스 시스템(1)이 마스터 기능 블록(110) 하나와 슬레이브 기능 블록(120) 하나가 포함된 경우만 도시되었으나, 이에 한정되는 것은 아니고, 버스 시스템(1)은 하나 이상의 마스터 기능 블록 및 하나 이상의 슬레이브 기능 블록을 포함할 수 있다. 또한, 하나 이상의 마스터 기능 블록 및 하나 이상의 슬레이브 기능 블록 각각은 버스 보호기를 포함할 수 있다.
도 2는 몇몇 실시예에 따라 동작이 정지된 슬레이브 기능 블록을 리셋하는 방법의 일례를 설명하기 위한 흐름도이다. 도 3 내지 도 6, 도 8 및 도 9는 몇몇 실시예에 따라 동작이 정지된 슬레이브 기능 블록을 리셋하는 방법의 일례를 설명하기 위해 도시한 도면들이다. 도 7은 몇몇 실시예에 따라 동작이 정지된 슬레이브 기능 블록을 인식하는 방법의 일례를 설명하기 위한 도면이다.
도 2를 참조하면, 제1 마스터 기능 블록(111)은 제1 슬레이브 기능 블록(121)에 제1 커맨드(C1)를 전송할 수 있다. 제1 커맨드(C1)는 버스(140)를 통해 제1 슬레이브 기능 블록(121)에 전송될 수 있다.
예를 들어, 도 3을 참조하면, 제1 마스터 기능 블록(111)이 제1 슬레이브 기능 블록에 대한 제1 커맨드(C1)를 전송한 경우, 제1 슬레이브 기능 블록(121)은 버스(140)를 통해 제1 커맨드(C1)를 수신할 수 있다.
제1 커맨드(C1)는 리드 커맨드(Read command) 또는 라이트 커맨드(Write command)일 수 있다. 다만, 이에 한정되는 것은 아니고, 제1 커맨드(C1)는 상술한 커맨드와 다른 커맨드가 될 수도 있다.
도 2를 다시 참조하면, 제1 슬레이브 기능 블록(121)은 제1 커맨드(C1)를 수신한 경우, 제1 커맨드(C1)에 대응하는 응답 신호(R1)를 버스(140)를 통해 제1 마스터 기능 블록(111)에 전송할 수 있다.
일례로, 제1 슬레이브 기능 블록(121)이 수신한 커맨드(C1)가 리드 커맨드(Read command)인 경우, 응답 신호(R1)는 리드 커맨드에 대응하는 데이터와 응답(response)을 포함할 수 있다. 여기서, 리드 커맨드에 대응하는 데이터는, 리드 커맨드에 의해 요청되는 데이터일 수 있고, 응답이라 함은 리드 커맨드에 대응하여 제1 슬레이브 기능 블록(121)이 정상적으로 리드 동작을 수행했다는 정보일 수 있다.
다른 일례로, 제1 슬레이브 기능 블록(121)이 수신한 커맨드(C1)가 라이트 커맨드(Write command)인 경우, 응답 신호(R1)는 제1 슬레이브 기능 블록(121)이 정상적으로 라이트 동작을 수행했다는 정보를 포함할 수 있다.
도 4를 참조하면, 제1 마스터 기능 블록(111)은 버스(140)를 통해 제1 슬레이브 기능 블록(121)에서 전송된 응답 신호(R1)를 수신할 수 있다. 여기서, 제1 슬레이브 기능 블록(121)에 포함된 버스 보호기(221)는 제1 슬레이브 기능 블록(121)이 정상적으로 동작하고 있기 때문에 별도의 동작을 수행하지 않을 수 있다.
몇몇 실시예에 따르면, 제1 슬레이브 기능 블록(121)이 정상적으로 동작하는 경우에도 제1 슬레이브 기능 블록(121)에 포함된 버스 보호기(221)가 제1 커맨드를 수신할 수 있다. 다만, 제1 슬레이브 기능 블록(121)이 정상적으로 동작하는 경우 제1 슬레이브 기능 블록(121)에 포함된 버스 보호기(221)는 제1 커맨드에 대한 아무런 동작을 수행하지 않을 수 있다.
도 2를 다시 참조하면, 제1 마스터 기능 블록(111)이 제2 커맨드(C2)를 버스(140)로 전송한 후, 제2 커맨드(C2)가 버스(140)에서 제1 슬레이브 기능 블록(121)으로 전송되기 전에 제1 슬레이브 기능 블록(121)의 동작이 정지될 수도 있다(A).
이 경우, 제1 슬레이브 기능 블록(121)은 제2 커맨드(C2)에 대응하는 응답 신호를 제1 마스터 기능 블록(111)으로 전송할 수 없다. 예를 들어, 제1 슬레이브 기능 블록(121)의 동작이 정지된 경우(A) 제1 슬레이브 기능 블록(121)은 제2 커맨드(C2)를 수신할 수 없다. 따라서, 제1 슬레이브 기능 블록(121)은 제1 마스터 기능 블록(111)으로 제2 커맨드(C2)에 대응하는 응답 신호를 전송할 수 없게 된다. 제1 슬레이브 기능 블록(121)이 제2 커맨드(C2)를 수신할 수 없기 때문에 제2 커맨드(C2)는 버스(140)에 계속 존재할 수 있다.
이렇게 제2 커맨드(C2)가 버스(140)에 계속 존재하는 문제를 해결하기 위한 기술적 사상으로, 몇몇 실시예에 따르면, 제1 슬레이브 기능 블록(121)에 포함된 버스 보호기(221)가 제1 슬레이브 기능 블록(121)의 동작이 정지된 경우, 제2 커맨드(C2)를 수신할 수 있다.
예를 들어, 도 5를 참조하면, 제1 슬레이브 기능 블록(121)의 동작이 정지된 상태에서 제1 슬레이브 기능 블록(121)에 포함된 버스 보호기(221)는 제1 슬레이브 기능 블록(121)에 대한 제2 커맨드(C2)를 제1 슬레이브 기능 블록(121) 대신 수신할 수 있다.
즉, 버스 보호기(221)는 동작이 정지된 제1 슬레이브 기능 블록(121) 대신 제2 커맨드(C2)를 처리할 수 있다.
예를 들어, 도 2를 다시 참조하면, 제1 슬레이브 기능 블록(121)에 포함된 버스 보호기(221)는 제1 슬레이브 기능 블록(121)의 동작이 정지된 상태(A)에서 제2 커맨드(C2)가 수신된 경우, 제2 커맨드(C2)에 대응하는 더미 신호(dummy signal, DS)를 생성할 수 있다(S210).
일례로, 제2 커맨드(C2)가 리드 커맨드인 경우, 더미 신호(DS)는 더미 데이터(dummy data) 및 더미 응답(dummy response)을 포함할 수 있다. 여기서, 더미 데이터라 함은 리드 커맨드에 의해 요청된 데이터가 아닌 임의의 데이터일 수 있고, 더미 응답은 리드 커맨드에 대응하는 동작을 수행하였다는 정보일 수 있다.
다른 일례로, 제2 커맨드(C2)가 라이트 커맨드인 경우, 더미 신호(DS)는 더미 응답(dummy response)를 포함할 수 있다. 여기서, 더미 응답이라 함은 라이트 커맨드에 대응하는 동작을 제1 슬레이브 기능 블록(121)이 수행하였다는 정보일 수 있다.
만약, 더미 응답으로 슬레이브 기능 블록에서 커맨드에 대응하는 동작을 제대로 수행하지 못하고 에러가 발생했다는 정보를 마스터 기능 블록으로 전송한 경우, 버스 시스템 전체 동작이 정지되는 문제가 발생할 수 있다. 따라서, 버스 보호기(221)는 커맨드에 대응하는 동작을 제대로 수행했다는 정보를 더미 응답으로 생성할 수 있다.
제1 슬레이브 기능 블록(121)에 포함된 버스 보호기(221)는 생성된 더미 신호(DS)를 제2 커맨드(C2)를 전송한 제1 마스터 기능 블록(111)에 전송할 수 있다.
도 6을 참조하면, 제1 마스터 기능 블록(111)은 제1 슬레이브 기능 블록(121)에 포함된 버스 보호기(221)에서 전송된 더미 신호(DS)를 버스(140)를 통해 수신할 수 있다.
도 2를 다시 참조하면, 제1 마스터 기능 블록(111)은 더미 신호(DS)를 수신함으로써, 제2 커맨드(C2)에 대응하는 응답 신호를 수신하였다고 인식할 수 있다. 제1 마스터 기능 블록(111)은 제2 커맨드(C2)에 대응하는 실제 응답 신호를 수신하지 못했지만 더미 신호(DS)를 수신하였기 때문에 버스(140) 내의 커맨드들이 정리될 수 있다.
한편, 시스템 매니저(130)는 제1 슬레이브 기능 블록(121)의 동작이 정지되었는지 여부를 인식할 수 있다(S220).
예를 들어, 시스템 매니저(130)는 버스 시스템에 포함된 모든 기능 블록에 체크 신호를 전송한 후 기 설정된 시간 내에 체크 신호에 대응하는 응답 신호를 수신하면 응답 신호를 전송한 기능 블록은 정상적으로 동작한다고 인식할 수 있다. 그리고, 시스템 매니저(130)는 기 설정된 시간 내에 상기 응답 신호를 수신하지 못한 경우, 상기 응답 신호를 전송하지 않은 기능 블록의 동작이 정지되었다고 인식할 수 있다.
도 7을 참조하면, 시스템 매니저(130)는 제1 슬레이브 기능 블록(121)에 제1 체크 신호(Check signal 1)을 전송하고, 제2 슬레이브 기능 블록(122)에 제2 체크 신호(Check signal 2)를 전송할 수 있다.
시스템 매니저(130)는 기 설정된 시간(t1) 내에 상기 제1 체크 신호(Check signal 1) 및 상기 제2 체크 신호(Check signal 2)에 대응하는 응답 신호가 수신되는지 여부를 감지할 수 있다.
시스템 매니저(130)는 기 설정된 시간(t1) 내에 상기 제1 슬레이브 기능 블록(121)으로부터 제1 체크 신호(Check signal 1)에 대응하는 응답 신호를 수신하지 못한 경우 제1 슬레이브 기능 블록(121)이 정지되었다고 인식할 수 있다(S221).
한편, 시스템 매니저(130)는 제2 슬레이브 기능 블록(122)으로부터 기 설정된 시간(t1) 내에 제2 체크 신호(Check signal 2)에 대응하는 응답 신호를 수신한 경우, 제2 슬레이브 기능 블록(122)은 정상적으로 동작하고 있다고 인식할 수 있다.
몇몇 실시예에 따르면, 시스템 매니저(130)는 마스터 기능 블록의 동작이 정지되었는지를 인식할 수 있다. 시스템 매니저(130)가 마스터 기능 블록의 동작이 정지되었는지를 인식하는 방법은 도 7과 관련하여 상술한 내용과 동일한 방법을 이용하기 위해 자세한 설명은 생략한다.
도 2를 다시 참조하면, 시스템 매니저(130)는 제1 슬레이브 기능 블록(121)의 동작이 정지된 상태라고 인식한 경우, 제1 슬레이브 기능 블록에 대한 커맨드의 추가 생성을 막는 제3 커맨드(C3)를 제1 마스터 기능 블록(111)에 전송할 수 있다.
제1 마스터 기능 블록(111)은 제3 커맨드(C3)를 수신한 경우, 제1 슬레이브 기능 블록(121)에 대한 커맨드를 제1 슬레이브 기능 블록(121)이 리셋될 때까지 생성하지 않을 수 있다.
한편, 도 8을 참조하면, 제1 마스터 기능 블록(111)이 제1 슬레이브 기능 블록(121)에 대한 제4 커맨드를 생성했지만 버스(140)에 전송하지 않은 상태에서, 제1 마스터 기능 블록(111)이 제1 슬레이브 기능 블록에 대한 커맨드의 추가 생성을 막는 제3 커맨드(Third Command)를 수신할 수도 있다. 이 경우, 제1 마스터 기능 블록(111)은 생성된 제4 커맨드(C4)의 전송을 제1 슬레이브 기능 블록(121)이 리셋될 때까지 딜레이(delay)시킬 수 있다.
즉, 동작이 정지된 제1 슬레이브 기능 블록(121)에 대한 커맨드의 추가 생성을 막는 경우, 동작이 정지된 제1 슬레이브 기능 블록(121)에 대한 커맨드가 계속 생성되는 것을 사전에 차단할 수 있다는 효과가 발생하게 된다.
도 2를 다시 참조하면, 시스템 매니저(130)는 동작을 멈춘 제1 슬레이브 기능 블록(121)과 관련된 커맨드가 버스(140) 내에 존재하지 않는다고 인식할 수 있다. 이 경우, 시스템 매니저(130)는 동작을 멈춘 제1 슬레이브 기능 블록(121)을 리셋(reset)할 수 있다(S230).
시스템 매니저(130)가 제1 슬레이브 기능 블록(121)을 리셋(reset)시키는 데에는 예를 들어, 버스(140)와 연결된 구성 요소가 이용될 수 있다. 예를 들어, 도 9를 참조하면, 버스 시스템은 버스(140) 내에 제1 슬레이브 기능 블록(121)에 관한 커맨드가 존재하는지 인식하는 카운터(310)를 포함할 수 있다.
카운터(310)는, 제1 마스터 기능 블록(111)에서 생성된 제1 슬레이브 기능 블록(111)에 대한 커맨드의 개수가 제1 슬레이브 기능 블록(121)에서 생성되어 제1 마스터 기능 블록(111)을 향해 전송된 더미 신호의 개수와 동일하다고 인식한 경우 버스(140) 내에 제1 슬레이브 기능 블록(121)에 관한 커맨드가 존재하지 않는다고 인식할 수 있다. 이 경우, 카운터(310)는 버스(140) 내에 제1 슬레이브 기능 블록(121)에 관한 커맨드가 존재하지 않는다는 제1 정보를 시스템 매니저(130)에게 전송할 수 있다.
시스템 매니저(130)는 제1 정보를 수신함에 따라 버스(140) 내에 제1 슬레이브 기능 블록(121)에 관한 커맨드가 존재하지 않는다고 인식하고, 제1 슬레이브 기능 블록(121)을 리셋(reset)할 수 있다.
버스(140) 내에 제1 슬레이브 기능 블록(121)에 대한 커맨드가 존재하지 않는 상태에서 제1 슬레이브 기능 블록(121)만 리셋하기 때문에 버스 시스템에 문제가 발생하지 않을 수 있다.
몇몇 실시예에 따르면, 시스템 매니저(130)는 제1 마스터 기능 블록(111)에서 생성된 제1 슬레이브 기능 블록(121)에 대한 커맨드가 전송된 후 기 설정된 시간(예를 들어, 0.1 초)이 경과한 경우, 제1 슬레이브 기능 블록(121)에 관한 커맨드가 버스(140) 내에 존재하지 않는다고 인식할 수도 있다. 따라서, 시스템 매니저(130)는 제1 마스터 기능 블록(111)에서 생성된 제1 슬레이브 기능 블록(121)에 대한 커맨드가 전송된 후 기 설정된 시간이 경과한 때 제1 슬레이브 기능 블록(121)을 리셋할 수 있다.
도 10 내지 도 12는 몇몇 실시예에 따라 복수의 슬레이브 기능 블록 중 어느 하나의 슬레이브 기능 블록의 동작이 정지된 경우 동작이 정지된 슬레이브 기능 블록을 리셋하는 방법의 일례를 설명하기 위해 도시한 도면들이다.
도 10 내지 도 12와 관련하여 제1 마스터 기능 블록(111)은 제1 슬레이브 기능 블록(121) 및 제2 슬레이브 기능 블록(122)에 커맨드를 전송하는 기능 블록이라고 가정하고, 제1 슬레이브 기능 블록(121)의 상태는 동작이 정지된 상태이고 제2 슬레이브 기능 블록(122)의 상태는 정상적으로 동작하는 상태라고 가정하고 이하 설명한다.
도 10을 참조하면, 시스템 매니저(130)는 제1 슬레이브 기능 블록(121)의 동작이 정지된 상태라고 인식한 경우, 제1 슬레이브 기능 블록(121)에 대한 커맨드의 추가 생성을 막는 커맨드(C3)를 제1 마스터 기능 블록(111)에 전송할 수 있다. 제1 마스터 기능 블록(111)은 커맨드(C3)를 수신한 경우, 제1 마스터 기능 블록(111)에 대한 커맨드를 제1 슬레이브 기능 블록(121)이 리셋될 때까지 생성하지 않을 수 있다.
다만, 제1 마스터 기능 블록(111)이 제1 슬레이브 기능 블록(121)에 대한 커맨드(412)를 생성했지만 버스(140)에 전송하지 않은 상태에서, 커맨드(C3)를 수신할 수도 있다. 이 경우, 제1 마스터 기능 블록(111)은 제1 슬레이브 기능 블록(121)에 대한 커맨드(412)의 전송을 제1 슬레이브 기능 블록(121)이 리셋될 때까지 딜레이(delay)시킬 수 있다.
한편, 커맨드(C3)를 수신하기 전 제1 마스터 기능 블록(111)에서 생성되어 버스로 전송된 제1 슬레이브 기능 블록(121)에 대한 커맨드들(411)은 제1 슬레이브 기능 블록(121)에 포함된 버스(140)에 존재할 수 있다. 이 경우, 동작이 정지된 제1 슬레이브 기능 블록(121)에 포함된 버스 보호기(221)가 버스(140)에 존재하는 커맨드들(411)을 수신할 수 있다.
도 11을 참조하면, 버스 보호기(221)는 커맨드들(411)을 수신함에 따라 커맨드들(411)에 대응하는 더미 시그널들(413)을 생성할 수 있다. 그리고, 버스 보호기(221)는 더미 시그널들(413)을 제1 마스터 기능 블록(111)을 향해 전송할 수 있다. 제1 마스터 기능 블록(111)은 더미 시그널들(413)을 예를 들어, 버스(140)를 통해 수신할 수 있다.
한편, 도 10을 다시 참조하면, 제2 슬레이브 기능 블록(122)은 정상적으로 동작하기 때문에, 제2 슬레이브 기능 블록(122)은 제1 마스터 기능 블록(111)에서 생성된 제2 슬레이브 기능 블록(122)에 대한 커맨드(421)를 버스(140)를 통해 수신할 수 있다. 이 경우, 제2 슬레이브 기능 블록(122)에 포함된 버스 보호기(222)는 커맨드(421)에 대응하는 더미 신호를 생성하지 않을 수 있다.
도 11을 다시 참조하면, 제2 슬레이브 기능 블록(122)은 제1 마스터 기능 블록(111)으로부터 수신된 커맨드(도 10의 421)에 대응하는 응답 신호(422)를 제1 마스터 기능 블록(111)으로 전송할 수 있다. 제1 마스터 기능 블록(111)은 응답 신호(422)를 버스(140)를 통해 수신할 수 있다.
한편, 시스템 매니저(130)는 제1 슬레이브 기능 블록(121)에 대한 커맨드가 버스(140) 내에 존재하지 않는다고 인식한 경우, 동작이 정지된 제1 슬레이브 기능 블록(121)을 리셋할 수 있다.
일례로, 시스템 매니저(130)는 제1 슬레이브 기능 블록(121)에 대한 커맨드가 전송된 후 기 설정된 시간이 경과한 경우, 제1 슬레이브 기능 블록(121)에 대한 커맨드가 버스(140) 내에 존재하지 않는다고 인식할 수 있다. 이 경우, 시스템 매니저(130)는 제1 슬레이브 기능 블록(121)을 리셋할 수 있다.
다른 일례로, 시스템 매니저(30)는 카운터(310)를 이용하여 제1 슬레이브 기능 블록(121)에 대한 커맨드가 버스(140) 내에 존재하지 않는다고 인식할 수도 있다. 이는 도 12를 참조하여 좀더 자세히 설명한다.
도 12를 참조하면, 버스 시스템은 버스(140) 내부에 동작이 정지된 슬레이브 기능 블록(예를 들어, 제1 슬레이브 기능 블록(121))에 대한 커맨드가 존재하는지를 인식하는 카운터(310)를 포함할 수 있다.
카운터(310)는 제1 마스터 기능 블록(111)에서 제1 슬레이브 기능 블록(121)에 대한 커맨드의 개수가 제1 슬레이브 기능 블록(121)으로부터 수신된 더미 신호의 개수와 동일하다고 인식한 경우 제1 슬레이브 기능 블록(121)에 대한 커맨드가 버스(140) 내에 존재하지 않는다고 인식할 수 있다. 이 경우, 카운터(310)는 시스템 매니저(130)에게 버스(140) 내에 제1 슬레이브 기능 블록(121)에 대한 커맨드가 존재하지 않는다는 제1 정보를 전송할 수 있다.
시스템 매니저(130)는 상기 제1 정보를 수신한 경우, 버스(140) 내에 제1 슬레이브 기능 블록(121)에 대응하는 커맨드가 존재하지 않는다고 인식할 수 있다. 이 경우, 시스템 매니저(130)는 동작이 정지된 제1 슬레이브 기능 블록을 리셋할 수 있다.
한편, 카운터(310)는 제1 슬레이브 기능 블록(121)에 대한 커맨드뿐만 아니라 정상적으로 동작하는 제2 슬레이브 기능 블록(122)에 대한 커맨드가 버스(140) 내에 존재하는지 여부를 인식할 수도 있다.
예를 들어, 카운터(310)는 제2 슬레이브 기능 블록(122)에 대한 커맨드의 개수와 제2 슬레이브 기능 블록(122)으로부터 수신된 응답 신호의 개수가 동일한 경우, 제2 슬레이브 기능 블록(122)에 대한 커맨드가 버스(140) 내에 존재하지 않는다고 인식할 수도 있다.
몇몇 실시예에 따르면, 버스 시스템 내에 포함된 마스터 기능 블록의 동작이 정지될 수도 있다. 이하 시스템 매니저(130)를 이용하여 마스터 기능 블록의 동작이 정지된 경우 마스터 기능 블록을 리셋시키는 방법을 설명한다.
시스템 매니저(130)는 기 설정된 시간 간격으로 마스터 기능 블록의 동작이 정지되었는지 여부를 인식할 수 있다. 마스터 기능 블록의 동작이 정지되었는지 여부를 인식하는 방법은 도 7과 관련하여 상술한 바와 유사한바 자세한 설명은 생략한다.
몇몇 실시예에 따르면, 시스템 매니저(130)는 마스터 기능 블록의 동작이 정지된 경우, 버스(140) 내에 동작이 정지된 마스터 기능 블록에서 생성된 커맨드가 존재하는지 여부를 인식할 수 있다. 시스템 매니저(130)는 동작이 정지된 마스터 기능 블록에서 생성된 커맨드가 존재하지 않는다고 인식한 경우, 동작이 정지된 마스터 기능 블록을 바로 리셋할 수 있다.
한편, 시스템 매니저(130)는 버스(140) 내에 동작이 정지된 마스터 기능 블록에서 생성된 커맨드가 존재하는 상태에서 동작이 정지된 마스터 기능 블록을 바로 리셋하게 되면 문제가 발생할 수도 있다. 따라서, 마스터 기능 블록을 리셋하기 전에 상기 커맨드를 버스(140) 내에서 정리할 필요가 있다.
몇몇 실시예에 따르면, 버스(140) 내에 존재하는 커맨드가 하나의 커맨드인 경우, 동작이 정지된 마스터 기능 블록에 포함된 버스 보호기는 슬레이브 기능 블록에서 생성된 상기 하나의 커맨드에 대응하는 응답 신호를 수신할 수 있다. 이 경우, 버스 보호기가 상기 응답 신호를 수신함에 따라 상기 커맨드가 버스(140) 내에서 정리될 수 있다. 따라서, 시스템 매니저(130)는 상기 응답 신호가 버스 보호기를 통해 수신되면 동작이 정지된 마스터 기능 블록을 리셋할 수 있다.
한편, 마스터 기능 블록이 복수의 커맨드를 전송하던 중에 동작이 정지될 수도 있다. 이는 도 13을 참조하여 좀더 자세히 설명한다.
도 13은 몇몇 실시예에 따라 마스터 기능 블록이 복수의 커맨드를 전송하던 중 동작이 정지된 경우, 동작이 정지된 마스터 기능 블록을 리셋하는 방법의 일례를 설명하기 위한 흐름도이다.
도 13을 참조하면, 버스 시스템은 제1 마스터 기능 블록(111), 제1 슬레이브 기능 블록(121), 시스템 매니저(130) 및 버스(140)를 포함할 수 있다. 또한, 제1 마스터 기능 블록(111)은 버스 보호기(211)를 포함할 수 있다.
제1 마스터 기능 블록(111)은 제1 슬레이브 기능 블록(121)에 대한 복수의 커맨드를 전송하던 중에 동작이 정지될 수도 있다.
예를 들어, 제1 마스터 기능 블록(111)은 5개의 커맨드 중 제1 커맨드(F1) 및 제2 커맨드(F2)를 전송한 후 동작이 정지될 수도 있다. 이 경우, 제1 슬레이브 기능 블록(121)은 제1 커맨드(F1) 및 제2 커맨드(F2)를 수신한 후 나머지 3개의 커맨드가 추가로 전송될 때까지 대기할 수 있다.
종래 기술에 의할 경우, 제1 마스터 기능 블록(111)의 동작이 정지된 상태(B)이므로 제1 슬레이브 기능 블록(121)은 제1 마스터 기능 블록(111)의 나머지 3개의 커맨드가 전송될 때까지 무한정 대기할 수 있어 문제가 발생하게 된다.
따라서, 몇몇 실시예에 따르면, 제1 마스터 기능 블록(111)에 포함된 버스 보호기(211)는 제1 마스터 기능 블록의 동작이 정지된 상태(B)인 경우, 나머지 3개의 커맨드에 대응하는 더미 커맨드들(DF1, DF2, DF3)을 생성할 수 있다(S310). 여기서, 더미 커맨드는 5개의 커맨드 중 전송되지 않은 나머지 커맨드에 대응하는 커맨드라는 정보만 포함할 뿐 다른 기능(예를 들어, 리드 또는 라이트 등)을 요청하는 커맨드는 아니다.
결과적으로, 제1 마스터 기능 블록(111)에 포함된 버스 보호기(211)는 제1 마스터 기능 블록(111)이 제1 슬레이브 기능 블록에 대해 N개(여기서, N은 자연수)의 커맨드 중 M번째(여기서, M은 N보다 작은 자연수) 커맨드를 전송한 후 동작이 정지된 경우, N-M개의 더미 커맨드를 생성하여 제1 슬레이브 기능 블록(121)에 전송할 수 있다.
제1 슬레이브 기능 블록(121)은 더미 커맨드들(DF1, DF2, DF3)을 버스(140)를 통해 수신할 수 있다. 제1 슬레이브 기능 블록(121)은 마지막 더미 커맨드(DF3)를 수신한 후 응답 신호(RF1)를 제1 마스터 기능 블록(111)으로 전송할 수 있다. 이 경우, 제1 마스터 기능 블록(111)의 동작이 정지된 상태(B)이므로 버스 보호기(211)가 제1 마스터 기능 블록(111) 대신 응답 신호(RF1)를 수신할 수 있다.
한편, 시스템 매니저(130)는 슬레이브 기능 블록(121)으로부터 더미 커맨드(DF3)에 대응하는 응답 신호(RF1)가 수신된 경우, 제1 마스터 기능 블록(111)에서 생성된 커맨드들의 처리가 모두 완료되었다고 인식할 수 있다. 시스템 매니저(130)는 제1 마스터 기능 블록(111)에서 생성된 커맨드들의 처리가 모두 완료되었다고 인식한 경우 동작이 정지된 제1 마스터 기능 블록(111)을 리셋할 수 있다.
상술한 몇몇 실시예들에 의하면, 버스 시스템 내에 포함된 어느 하나의 기능 블록(IP Block)의 동작이 멈췄을 때, 버스 시스템 내의 다른 부분에 문제가 발생하지 않도록 버스 시스템 내에 남아있는 커맨드를 정리할 수 있다. 또한, 상술한 몇몇 실시예들에 의하면, 버스 시스템 내에 포함된 어느 하나의 기능 블록의 동작이 멈췄을 때, 문제가 생긴 기능 블록만 전체 버스 시스템에 문제를 발생시키지 않도록 하면서 리셋할 수 있다.
이상 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하였으나, 본 발명은 상기 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 제조될 수 있으며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
1 : 버스 시스템
110 : 마스터 기능 블록
120 : 슬레이브 기능 블록
130 : 시스템 매니저
140 : 버스
210, 220 : 버스 보호기

Claims (10)

  1. 제1 버스 보호기를 포함하는 슬레이브 기능 블록;
    상기 슬레이브 기능 블록에 대해 제1 커맨드를 전송하는 마스터 기능 블록;
    상기 마스터 기능 블록과 상기 슬레이브 기능 블록이 연결되도록 제어하는 버스;
    상기 슬레이브 기능 블록과 상기 제1 버스 보호기와 분리되는 시스템 매니저로서, 상기 슬레이브 기능 블록이 상기 제1 커맨드를 수신할 수 없거나 상기 제1 커맨드에 대응하는 응답 신호를 전송할 수 없는 제1 상태이고, 상기 버스 내에 상기 제1 커맨드가 존재하지 않는다고 인식되면, 상기 슬레이브 기능 블록을 리셋하는 시스템 매니저; 및
    상기 슬레이브 기능 블록으로부터 수신한 더미(dummy) 신호의 개수가 상기 슬레이브 기능 블록으로 전송되는 상기 제1 커맨드의 개수와 같은지를 결정하는 카운터를 포함하고,
    상기 제1 버스 보호기는, 상기 슬레이브 기능 블록이 상기 제1 상태인 경우, 상기 제1 커맨드를 상기 슬레이브 기능 블록 대신 수신하고 상기 제1 커맨드에 대응하는 상기 더미 신호를 상기 마스터 기능 블록에 전송하는 버스 시스템.
  2. 제 1 항에 있어서,
    상기 제1 버스 보호기는,
    상기 제1 커맨드가 리드 커맨드인 경우, 더미 데이터(dummy data) 및 더미 응답(dummy response)을 포함하는 상기 더미 신호를 상기 마스터 기능 블록에 전송하는, 버스 시스템.
  3. 제 1 항에 있어서,
    상기 제1 버스 보호기는,
    상기 제1 커맨드가 라이트 커맨드인 경우, 더미 응답(dummy response)을 포함하는 상기 더미 신호를 상기 마스터 기능 블록에 전송하는, 버스 시스템.
  4. 제 1 항에 있어서,
    상기 시스템 매니저는, 상기 슬레이브 기능 블록에 체크 신호를 전송한 후 기 설정된 시간 내에 응답 신호가 수신되지 않으면 상기 슬레이브 기능 블록의 동작이 정지된 상태로 인식하는 버스 시스템.
  5. 제 4 항에 있어서,
    상기 시스템 매니저는,
    상기 슬레이브 기능 블록의 동작이 정지되었다고 인식한 경우, 상기 슬레이브 기능 블록에 대한 상기 제1 커맨드의 추가 생성을 막는 제2 커맨드를 상기 마스터 기능 블록에 전송하는, 버스 시스템.
  6. 삭제
  7. 슬레이브 기능 블록; 및
    상기 슬레이브 기능 블록에 대해 제1 커맨드를 전송하는 마스터 기능 블록을 포함하고,
    상기 슬레이브 기능 블록은,
    상기 슬레이브 기능 블록이 상기 제1 커맨드를 수신할 수 없거나 상기 제1 커맨드에 대응하는 응답 신호를 전송할 수 없는 상태인 경우, 상기 제1 커맨드를 상기 슬레이브 기능 블록 대신 수신하고 상기 제1 커맨드에 대응하는 더미(dummy) 신호를 상기 마스터 기능 블록에 전송하는 제1 버스 보호기를 포함하고,
    상기 마스터 기능 블록은,
    상기 슬레이브 기능 블록에 N개의 커맨드 중 M번째 커맨드를 전송한 후 상기 마스터 기능 블록의 동작이 정지된 경우 N-M개의 더미 커맨드들을 생성하여 상기 슬레이브 기능 블록에 전송하는 제2 버스 보호기를 포함하는, 버스 시스템.
  8. 제 7 항에 있어서,
    상기 제2 버스 보호기가 상기 슬레이브 기능 블록으로부터 상기 더미 커맨드들에 대응하는 신호를 수신한 경우 상기 마스터 기능 블록을 리셋하는 시스템 매니저를 더 포함하는, 버스 시스템.
  9. 복수의 기능 블록과 연결된 버스;
    카운터; 및
    상기 복수의 기능 블록과 분리된 시스템 매니저를 포함하고,
    상기 복수의 기능 블록은 제1 보호기를 포함하는 제1 기능 블록과 제2 기능 블록을 포함하고,
    상기 제2 기능 블록은 상기 제1 기능 블록에 대해 제1 커맨드를 전송하고,
    상기 시스템 매니저는,
    상기 제1 기능 블록의 동작이 정지되고, 상기 제1 기능 블록에 대한 상기 제1 커맨드가 상기 버스 내에 존재하지 않는다고 인식하면 상기 제1 기능 블록을 리셋하고,
    상기 제2 기능 블록의 동작이 정지되고, 상기 제1 커맨드에 대응하는 제1 응답을 수신하면 상기 제2 기능 블록을 리셋하고,
    상기 카운터는, 상기 제1 기능 블록으로부터 수신한 더미 신호의 개수가 상기 제1 기능 블록으로 전송되는 상기 제1 커맨드의 개수와 같은지를 결정하고,
    상기 제1 보호기는,
    상기 제1 기능 블록이 제1 상태인 경우, 상기 제1 커맨드를 상기 제1 기능 블록 대신 수신하고 상기 제1 커맨드에 대응하는 상기 더미 신호를 상기 제2 기능 블록에 전송하는, 버스 시스템.
  10. 제1 버스 보호기를 포함하는 제1 슬레이브 기능 블록;
    제2 버스 보호기를 포함하는 제2 슬레이브 기능 블록;
    제1 커맨드를 상기 제1 슬레이브 기능 블록에 전송하고 제2 커맨드를 상기 제2 슬레이브 기능 블록에 전송하는 마스터 기능 블록;
    상기 제1 및 제2 슬레이브 기능 블록과 분리되고, 상기 제1 및 제2 버스 보호기와 분리되는 시스템 매니저로서, 상기 제1 및 제2 슬레이브 기능 블록과 상기 마스터 기능 블록을 제어하는 시스템 매니저; 및
    상기 제1 슬레이브 기능 블록으로부터 수신한 더미(dummy) 신호의 개수가 상기 제1 슬레이브 기능 블록으로 전송되는 상기 제1 커맨드의 개수와 같은지를 결정하는 카운터를 포함하고,
    상기 제1 버스 보호기는,
    상기 제1 슬레이브 기능 블록이 상기 제1 커맨드를 수신할 수 없거나 상기 제1 커맨드에 대응하는 응답 신호를 전송할 수 없는 제1 상태인 경우, 상기 제1 커맨드를 상기 제1 슬레이브 기능 블록 대신 수신하고, 상기 제1 커맨드에 대응하는 제1 더미 신호를 상기 마스터 기능 블록에 전송하고,
    상기 시스템 매니저는,
    상기 제1 슬레이브 기능 블록이 상기 제1 상태인 경우, 상기 제1 커맨드의 추가 생성을 중지하는 제3 커맨드를 생성하여 상기 마스터 기능 블록에 전송하고,
    상기 시스템 매니저는,
    상기 제1 슬레이브 기능 블록이 상기 제1 상태이고 상기 제1 커맨드가 버스 내에 존재하지 않는다고 인식되면, 상기 제1 슬레이브 기능 블록을 리셋하고,
    상기 제2 슬레이브 기능 블록은,
    상기 제2 커맨드에 대응하는 응답 신호를 상기 마스터 기능 블록에 전송하는, 버스 시스템.
KR1020170127286A 2017-09-29 2017-09-29 버스 시스템 KR102385541B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020170127286A KR102385541B1 (ko) 2017-09-29 2017-09-29 버스 시스템
US15/943,647 US10769085B2 (en) 2017-09-29 2018-04-02 Bus system
TW107121158A TWI750386B (zh) 2017-09-29 2018-06-20 匯流排系統
CN201811028101.4A CN109582634B (zh) 2017-09-29 2018-09-04 总线系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170127286A KR102385541B1 (ko) 2017-09-29 2017-09-29 버스 시스템

Publications (2)

Publication Number Publication Date
KR20190037690A KR20190037690A (ko) 2019-04-08
KR102385541B1 true KR102385541B1 (ko) 2022-04-11

Family

ID=65896611

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170127286A KR102385541B1 (ko) 2017-09-29 2017-09-29 버스 시스템

Country Status (4)

Country Link
US (1) US10769085B2 (ko)
KR (1) KR102385541B1 (ko)
CN (1) CN109582634B (ko)
TW (1) TWI750386B (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110674075B (zh) * 2019-09-27 2023-03-10 山东华芯半导体有限公司 一种axi总线广播机制的实现方法和系统
KR20220125897A (ko) * 2021-03-05 2022-09-15 삼성전자주식회사 시스템 온 칩 및 시스템 온 칩에 포함된 연결 버스

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003288278A (ja) 2002-01-25 2003-10-10 Oki Electric Ind Co Ltd マイクロコントローラ
JP2010140361A (ja) 2008-12-12 2010-06-24 Fujitsu Microelectronics Ltd コンピュータシステム及び異常検出回路
JP2011081551A (ja) 2009-10-06 2011-04-21 Panasonic Corp データ処理システム
US20150355989A1 (en) * 2014-06-10 2015-12-10 Analog Devices, Inc. Safety node in interconnect data buses
JP2017068345A (ja) 2015-09-28 2017-04-06 ルネサスエレクトロニクス株式会社 バスシステム

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6683848B1 (en) * 1999-06-08 2004-01-27 Cisco Technology, Inc. Frame synchronization and fault protection for a telecommunications device
US6636982B1 (en) * 2000-03-03 2003-10-21 International Business Machines Corporation Apparatus and method for detecting the reset of a node in a cluster computer system
US6985980B1 (en) 2000-11-03 2006-01-10 Xilinx, Inc. Diagnostic scheme for programmable logic in a system on a chip
US6801972B2 (en) * 2002-02-15 2004-10-05 Lsi Logic Corporation Interface shutdown mode for a data bus slave
DE10307826A1 (de) * 2003-02-24 2004-10-14 BSH Bosch und Siemens Hausgeräte GmbH Verfahren und Vorrichtung zur Ermittlung und gegebenenfalls zur Bewertung von Störungen und/oder Blockierungen in der Kommunikation mit Hausgeräten
US7383461B2 (en) * 2004-02-12 2008-06-03 International Business Machines Corporation Method and system to recover a failed flash of a blade service processor in a server chassis
US7251755B2 (en) 2004-02-13 2007-07-31 Intel Corporation Apparatus and method for maintaining data integrity following parity error detection
KR101089324B1 (ko) * 2004-02-20 2011-12-02 삼성전자주식회사 복수의 마스터들을 포함하는 서브 시스템을 개방형 코어프로토콜을 기반으로 하는 버스에 연결하기 위한 버스시스템
GB2418036B (en) 2004-09-08 2007-10-31 Advanced Risc Mach Ltd Communication transaction control between independent domains of an integrated circuit
JP4487756B2 (ja) 2004-12-16 2010-06-23 日本電気株式会社 コンピュータシステム及びシステム監視プログラム
US20070240019A1 (en) 2005-12-29 2007-10-11 International Business Machines Corporation Systems and methods for correcting errors in I2C bus communications
JP2010003268A (ja) 2008-06-23 2010-01-07 Toshiba Corp スレーブ装置
JP5017295B2 (ja) * 2009-02-20 2012-09-05 株式会社日立産機システム デバイス接続システム、ならびに、そのデバイス接続システムに用いられるマスタ側ブリッジ、スレーブ側ブリッジ、および、通信用ブリッジ
FR2948785B1 (fr) * 2009-07-28 2011-08-26 St Ericsson Grenoble Sas Terminateur de transaction
KR20110124617A (ko) 2010-05-11 2011-11-17 삼성전자주식회사 시스템-온-칩 및 그것의 디버깅 방법
US8621113B2 (en) * 2011-05-31 2013-12-31 Micron Technology, Inc. Apparatus including host bus adapter and serial attachment programming compliant device and related methods
US20160034411A1 (en) * 2014-08-04 2016-02-04 Qualcomm Innovation Center, Inc. Subsystem Peripheral Ownership Scheduling and Reconfiguration for Highly Integrated System on Chips
US9529686B1 (en) 2014-10-29 2016-12-27 Xilinx, Inc. Error protection for bus interconnect circuits

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003288278A (ja) 2002-01-25 2003-10-10 Oki Electric Ind Co Ltd マイクロコントローラ
JP2010140361A (ja) 2008-12-12 2010-06-24 Fujitsu Microelectronics Ltd コンピュータシステム及び異常検出回路
JP2011081551A (ja) 2009-10-06 2011-04-21 Panasonic Corp データ処理システム
US20150355989A1 (en) * 2014-06-10 2015-12-10 Analog Devices, Inc. Safety node in interconnect data buses
JP2017068345A (ja) 2015-09-28 2017-04-06 ルネサスエレクトロニクス株式会社 バスシステム

Also Published As

Publication number Publication date
CN109582634B (zh) 2024-02-20
TW201916644A (zh) 2019-04-16
US20190102332A1 (en) 2019-04-04
TWI750386B (zh) 2021-12-21
KR20190037690A (ko) 2019-04-08
US10769085B2 (en) 2020-09-08
CN109582634A (zh) 2019-04-05

Similar Documents

Publication Publication Date Title
US11567895B2 (en) Method, apparatus and system for dynamic control of clock signaling on a bus
EP3706010B1 (en) Enabling sync header suppression latency optimization in the presence of retimers for serial interconnect
CN108763140B (zh) 一种双向通信的方法、系统及终端设备
EP3001323B1 (en) Serial peripheral interface
KR102498223B1 (ko) Ufs 장치의 작동 방법, ufs 호스트의 작동 방법, 및 이들을 포함하는 시스템의 작동 방법
CN108304334B (zh) 应用处理器和包括中断控制器的集成电路
CN112307529A (zh) 计算机总线的设备接口安全管理
CN111858439A (zh) 用于多种通信业务的共享的资源
KR102385541B1 (ko) 버스 시스템
US9626319B2 (en) Allocating lanes in a peripheral component interconnect express (‘PCIe’) bus
US20150113333A1 (en) Data processing system and operating method thereof
EP2778935B1 (en) Efficient Input/Output (I/O) operations
KR102167393B1 (ko) 메모리 공유 환경에서 데이터 무결성 감시 장치 및 방법
KR20160069841A (ko) 시스템 온 칩과 이를 포함하는 모바일 전자 기기
CN112688843A (zh) 用于多点互连上的对等通信的系统、装置和方法
US10216591B1 (en) Method and apparatus of a profiling algorithm to quickly detect faulty disks/HBA to avoid application disruptions and higher latencies
US10656991B2 (en) Electronic component having redundant product data stored externally
KR101260313B1 (ko) 전자장치 및 그 데이터 송수신방법과, 슬레이브 장치 및복수의 장치 간의 통신방법
JP2008503833A (ja) 並列通信バスに連結された装置内で割込みメッセージを待ち行列に入れるためのコンピュータシステム及び方法
CN105022707B (zh) 接口单元装置
US9519487B2 (en) System-on-chip and method of operating the same
CN111427815A (zh) 一种基于spi接口的核间通讯方法、终端及存储介质
JP2008503834A (ja) 並列通信バスを介して割り込みメッセージを伝送するためのコンピュータシステムおよび方法
CN109086179A (zh) 一种程序异常情况下的处理方法和装置
US20240106644A1 (en) Mitigation of side channel attacks on platform interconnects using endpoint hardware based detection, synchronization and re-keying

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