KR100656977B1 - 버스 컨트롤러에 명령 스케줄을 프리로딩하는 시스템 및 방법 - Google Patents

버스 컨트롤러에 명령 스케줄을 프리로딩하는 시스템 및 방법 Download PDF

Info

Publication number
KR100656977B1
KR100656977B1 KR1020037013973A KR20037013973A KR100656977B1 KR 100656977 B1 KR100656977 B1 KR 100656977B1 KR 1020037013973 A KR1020037013973 A KR 1020037013973A KR 20037013973 A KR20037013973 A KR 20037013973A KR 100656977 B1 KR100656977 B1 KR 100656977B1
Authority
KR
South Korea
Prior art keywords
instructions
bus controller
network
bus
series
Prior art date
Application number
KR1020037013973A
Other languages
English (en)
Other versions
KR20040015153A (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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=26963977&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=KR100656977(B1) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by 더 보잉 캄파니 filed Critical 더 보잉 캄파니
Publication of KR20040015153A publication Critical patent/KR20040015153A/ko
Application granted granted Critical
Publication of KR100656977B1 publication Critical patent/KR100656977B1/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
    • 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/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different 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/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/387Information transfer, e.g. on bus using universal interface adapter for adaptation of different data processing systems to different peripheral devices, e.g. protocol converters for incompatible systems, open system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/403Bus networks with centralised control, e.g. polling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L2012/40267Bus for use in transportation systems
    • H04L2012/40273Bus for use in transportation systems the transportation system being a vehicle
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L2012/40267Bus for use in transportation systems
    • H04L2012/4028Bus for use in transportation systems the transportation system being an aircraft

Abstract

네트워크 버스를 통해 적어도 하나의 네트워크 장치와 통신하는 시스템 및 방법은 버스 컨트롤러 및 호스트 컴퓨터를 포함한다. 버스 컨트롤러는 호스트 컴퓨터로부터 버스 컨트롤러에 전달될 수 있는 일련의 인스트럭션을 실행한다. 인스트럭션은 호스트 컴퓨터의 워크로드를 감소시키고 버스 컨트롤러와 네트워크 장치 사이에서 네트워크 버스를 통해 행해지는 통신을 제어하도록 호스트 컴퓨터와 별개의 방식으로, 일반적으로 반복해서, 실행된다. 버스 컨트롤러는 호스트 컴퓨터가 추가로 개입되지 않고 일련의 인스트럭션을 실행할 수 있기 때문에, 호스트 컴퓨터는 버스 컨트롤러에 의하여 일련의 인스트럭션이 실행되는 동시에 다른 동작을 실행할 수 있다. 일 실시예에 있어서, 일련의 인스트럭션 중 적어도 하나는 가변적이고 호스트 컴퓨터에 의하여 변경될 수 있는 연관된 데이터 필드를 갖고, 이로써 호스트 컴퓨터는 가변 데이터 필드 내의 값을 변경시킴으로써 버스 컨트롤러에 의하여 사용된 인스트럭션을 변경시킬 수 있다.
네트워크 버스, 버스 컨트롤러, 호스트 컴퓨터, 일련의 인스트럭션, 데이터 필드

Description

버스 컨트롤러에 명령 스케줄을 프리로딩하는 시스템 및 방법 {SYSTEM AND METHOD FOR PRELOADING A BUS CONTROLLER WITH COMMAND SCHEDULE}
본 발명은 일반적으로 호스트 컴퓨터의 워크로드(work load)를 감소시키는 시스템 및 방법에 관한 것으로서, 보다 구체적으로는 호스트 컴퓨터의 개입없이, 일반적으로 반복해서 실행될 수 있고, 원하는 경우 호스트 컴퓨터에 의하여 업데이트될 수 있는 명령 스케줄을 버스 컨트롤러에 프리로딩(preloading)하는 시스템 및 방법에 관한 것이다.
멀티미디어 엔터테인먼트, 커뮤니케이션, 프로세스 컨트롤 시스템, 및 자동차와 항공 산업에서 사용되는 진단 시스템과 같은 시스템이 보다 복잡해지고 있기 때문에, 서로 간에 또는 중앙 컨트롤러 등과 통신하기 위한 추가 장치의 필요성이 증가하고 있다. 종래에는, 이들 시스템은 서로 간의 통신을 지원하기 위하여 각종 장치 사이에 설치되는 전용선을 포함하였다. 시스템이 더 통합식으로 되어 가고 통신 요구가 증가되고 있기 때문에, 필요한 전용선의 양으로 인해 필요한 공간 및 배선과 중계국 설치 비용 모두가 빠른 속도로 엄청나게 증가해 가고 있다. 또한, 전용선의 양이 증가함에 따라, 일반적으로 시스템의 전체적인 복잡성이 또한 증가될 뿐만 아니라 배선 일부가 설치 도중이나 또는 설치 후 손상 또는 파손될 수 있다.
따라서, 복수의 장치 간에 공통의 통신 경로를 제공하도록 네트워크 버스가 개발되었다. 자동차 및 항공 응용에 있어서, 예를 들면, 네트워크 버스는 각종 구성품을 모니터하고 진단 및 상태 정보를 수집하는데 사용될 수 있다. 이로써, 각종 구성품이 영향을 받는 왜곡, 가속, 압력 및/또는 온도에 관한 진단 및 상태 정보가 수집되어 분석될 수 있다. 다른 예로서, 네트워크 버스 기술은 오늘날에는 통신을 지원하고 자동차, 미니밴, 스포츠형 다목적 차량, 항공기, 보트 등과 같은 운송 수단의 운전자에게 멀티미디어 정보를 전달하도록 개발되고 있다. 상기 네트워크 버스는 한 가지 이상의 라디오, 카세트 테이프 플레이어, 콤팩트 디스크 플레이어 등에 의하여 발생된 스트리밍 오디오 신호를 포함하는 오디오 신호를 차량을 통해 선택된 스피커 또는 헤드폰 잭에 전달할 수 있다는 점이 장점이다. 마찬가지로, 네트워크 버스는 차량의 운전자가 휴대하고 있는 휴대전화와의 음성 및 데이터 통신을 지원할 수 있을 뿐만 아니라, 랩톱 컴퓨터, 휴대용 컴퓨터 장치 등과의 통신을 지원할 수 있다. 또한, 네트워크 버스는 스트리밍 비디오 신호를 포함하는 비디오 신호를 텔레비전 수상기, 비디오카세트 리코더 또는 다른 비디오 소스로부터 하나 이상의 비디오 모니터에 전송할 수 있다. 또한, 네트워크 버스는 동력 전달 계통 장치(drivetrain device), 수동적 안전 장치(passive restraint device), 충돌 방지 장치(crash avoidance device), 드라이브-바이-와이어 장치(drive-by-wire device) 등과 같은 장치에 센서 및 액추에이터 신호를 전송하고 이들 장치로부터 수신할 수 있다.
네트워크 버스에 연결된 각종 장치 외에, 일반적으로 각종 장치로부터 데이터를 수신하고 이들 장치에 명령을 송신하도록 하나 이상의 컨트롤러가 네트워크 버스에 또한 연결된다. 특히, 이들 명령은 각종 장치가 네트워크 버스를 통해 정보를 전송하는 방식을 포함하여 각종 장치가 기능하는 방식을 특정한다. 또한, 컨트롤러는 차량의 운전자와 같은 조작자로부터 입력을 수신할 수 있다. 상기 입력은, 예를 들면, 네트워크 버스를 통해 전송될 신호의 소스 표시뿐만 아니라 신호의 수신지를 포함할 수 있다.
하나의 시스템에 있어서, 하나 이상의 버스 컨트롤러는 호스트 프로세서로도 알려진 호스트 컴퓨터의 제어 하에서 호스트 컴퓨터와 함께 동작한다. 호스트 컴퓨터는 일반적으로 네트워크 버스를 거쳐 전송될 명령을 버스 컨트롤러에 제공한다. 역으로, 호스트 컴퓨터는 버스 컨트롤러에 의하여 네트워크 장치로부터 응답을 제공받는다. 호스트 컴퓨터는 호스트 컴퓨터에 의하여 버스 컨트롤러에 내려진 명령의 타이밍에 따라 버스 컨트롤러의 활동을 조정하거나 또는 동시에 일어나게 할 수 있다. 또한, 호스트 컴퓨터는 다수의 시스템에 걸친 동작을 명령하는 프로세스 컨트롤 동작을 실행하는 한편, 네트워크 장치에 의하여 제공된 데이터중 상당량의 데이터 분석 및 데이터 마이닝(data mining)을 또한 실행한다.
호스트 컴퓨터가 실행해야 하는 여러 가지 기능 때문에, 호스트 컴퓨터는 버스 컨트롤러에 원하는 스케줄에 따라 명령을 제공하지 못하는 경우도 가끔 있을 수 있다. 이 점에 있어서, 호스트 컴퓨터에 의하여 실행되는 시스템 전체의 동작은 버스 컨트롤러에 명령을 제공하는 것을 포함하는 다른 기능을 제외하고 먼저 실행해야 할 우선 순위가 높은 동작으로 정해지는 것이 일반적이다. 호스트 컴퓨터가 직면하는 곤란함이란, 호스트 컴퓨터가 버스 컨트롤러와 보다 빈번하게 상호 작용할 것으로 예상되기 때문에, 고 밴드폭을 갖는 시스템일수록 더 더 악화된다는 것이다. 또한, 다수의 시스템은 네트워크 장치가 버스 컨트롤러에 의하여 내려진 명령에 의하여 기능을 실행하도록 트리거되는 시간에 따른 결정 방식으로 설계된다. 네트워크 장치는 종종 미리 정해진 시간에 데이터 샘플을 얻는 등의 특정 기능을 실행하는 것이 바람직하기 때문에, 버스 컨트롤러는 미리 정해진 시간에 명령을 내릴 뿐만 아니라 특정 기능을 실행하도록 네트워크 장치를 트리거하는 것이 바람직하다. 그러나, 호스트 컴퓨터의 워크로드는 보다 높은 밴드폭으로 증가하기 때문에, 호스트 컴퓨터는 버스 컨트롤러가 시간에 따른 결정 방식으로 네트워크 버스에 명령을 내릴 수 있도록 버스 컨트롤러에 일관된 시간으로 거의 명령을 내릴 수 없다.
예를 들면, 시스템은 복수의 센서로부터 미리 정해진 샘플링 주파수로 데이터를 수집하도록 설계될 수 있다. 데이터의 수집은 버스 컨트롤러에 의하여 내려진 명령에 의하여 트리거되기 때문에, 버스 컨트롤러에 의하여 내려진 명령은 동일한 미리 정해진 샘플링 주파수로 내려져야 한다. 따라서, 호스트 컴퓨터가 버스 컨트롤러에 동일한 미리 정해진 샘플링 주파수로 명령을 내리도록 명령할 수 없는 경우, 시스템은 원하는 스케줄에 따라 데이터를 획득할 수 없으므로 데이터는 상당량의 타이밍 지터를 포함하게 되어 진폭 및 상이 왜곡된다.
상기 단점을 극복하기 위하여, 매입된 소프트웨어 프로세스를 갖는 보다 빠른 프로세서 또는 실시간 연산 시스템을 가진 호스트 컴퓨터가 사용되었다. 상기 방법은 시간에 따른 결정 방식으로 동작할 수 있지만, 호스트 프로세서는 자신의 다른 기능의 실행과 함께 네트워크 트래픽을 여전히 예정에 넣어야 한다. 또한, 일부 시스템은 상기 단점을 극복하기 위하여 프로토콜 인코더 및 디코더를 포함하지만, 상기 시스템은 네트워크 트래픽을 예정에 넣는 것이 여전히 필요하다. 따라서, 상기 방법 어느 것도 호스트 컴퓨터가 네트워크 트래픽을 버스 컨트롤러를 거쳐 명령하는 필요성을 없애지는 못한다. 따라서, 버스 컨트롤러에는 보다 예상가능한 방식으로 명령이 제공될 수 있도록 호스트 컴퓨터의 워크로드를 감소시키는 것이 바람직할 수 있으므로, 버스 컨트롤러가 시간에 따른 결정 방식으로 명령을 내릴 수 있다.
전술한 내용으로 보아, 본 발명은 네트워크 버스를 거쳐 적어도 하나의 네트워크 장치와 통신하는 개선된 시스템 및 방법을 제공하는 것이다. 본 발명의 시스템 및 방법은 호스트 컴퓨터와 관계없이 버스 컨트롤러가 명령 스케줄(때로는 동작 스케줄이라고 함)에 따라 명령을 내릴 수 있도록 함으로써 호스트 컴퓨터의 워크로드를 감소시킨다. 이로써, 호스트 컴퓨터는 버스 컨트롤러가 명령 스케줄로 프리로딩(preloading)되도록 일련의 인스트럭션을 버스 컨트롤러에 전달할 수 있다. 본 발명의 일 양태에 있어서, 시스템은 호스트 컴퓨터, 및 호스트 컴퓨터와 네트워크 버스 양자 모두와 전기적 통신 상태로 배치된 버스 컨트롤러를 포함한다. 버스 컨트롤러는 일련의 인스트럭션을 기억하는 메모리 장치를 포함하고, 네트워크 버스를 거쳐 행해지는 통신을 제어하도록 호스트 컴퓨터와 별개로 일련의 인스트럭션을 일반적으로 반복해서 실행하는데 적합하다.
따라서, 일련의 인스트럭션은 버스 컨트롤러가 명령 스케줄로 프리로딩되도록 호스트 컴퓨터로부터 버스 컨트롤러로 초기에 전달된다. 다음에, 상기 일련의 인스트럭션은 버스 컨트롤러와 네트워크 장치 사이의 네크워크 버스를 거쳐 행해지는 통신을 제어하도록 호스트 컴퓨터와 별개로 일반적으로 반복해서 실행된다. 버스 컨트롤러는 호스트 컴퓨터를 추가로 개입시키지 않고 일련의 인스트럭션을 실행할 수 있기 때문에, 호스트 컴퓨터는 버스 컨트롤러가 일련의 인스트럭션을 실행하는 것과 동시에 다른 동작을 실행할 수 있다. 예를 들면, 호스트 컴퓨터는 버스 컨트롤러가 명령을 내리도록 명령하지 않고 데이터 분석 및 시스템 연산을 실행할 수 있다. 또한, 버스 컨트롤러에 명령 스케줄을 프리로딩함으로써, 버스 컨트롤러는 원하는 스케줄에 따라 네트워크 버스를 거쳐 데이터 및 다른 유형의 통신의 획득을 지원하도록 시간 에 따른 결정 방식으로 명령을 내릴 수 있다.
전술한 바와 같이, 본 발명의 시스템 및 방법은 호스트 컴퓨터를 사용하지 않고 시간에 따른 결정 방식으로 네트워크 프로세스를 실행할 수 있다. 구체적으로, 본 발명의 시스템 및 방법은 버스 컨트롤러에 의하여 내려진 명령이 네트워크 프로토콜용이고 주기적으로 반복성(즉, 주기적으로 계속해서 반복되는 일련의 프로토콜 명령)인 경우이다. 본 발명의 시스템 및 방법은 호스트 프로세서가 실행해야 하는 연산으로부터 상기 반복 시리즈의 명령을 제거하고 명령 및 데이터를 일반적으로 일련의 인스트럭션 형태로 명령 스케줄 내에 프리로딩한다. 그러나, 전술한 바와 같이, 본 발명의 시스템 및 방법은 네트워크 시스템이 동작하는 도중에 변하지 않는 일련의 인스트럭션 및 데이터를 포함하는 명령 스케줄만을 프리로딩한다. 그러나, 주기적인 명령 스케줄을 실행하는 도중에 명령 스케줄 내에 나열된 명령 및 데이터의 동적 변경으로 네트워크 시스템이 더 양호하게 프로세스를 제어할 수 있다는 것이 바람직한 경우도 종종 있다. 즉, 동작 도중에 네트워크 시스템 관련 프로세스에 따라 변경 또는 업데이트될 수 있는 명령 및 데이터를 갖는 프리로딩된 명령 스케줄을 제공하는 것이 바람직할 수 있다.
상기와 같이, 본 발명의 시스템 및 방법은, 일부 실시예에 있어서, 호스트 컴퓨터가 컨텐츠를 수정하고 매입된 명령 스케줄을 실행하여 더 양호한 프로세스 컨트롤을 제공할 수 있는 절차를 제공한다. 본 발명의 시스템 및 방법은 호스트 컨트롤러가 네트워크로부터 데이터를 수신하고 분석하며, 분석 결과를 계산하고, 명령 스케줄 내에 명령 또는 요지로서 재삽입될 수 있는 적절한 프로세스 변형을 발생시킬 수 있다. 호스트 프로세서는 상기 실시예에서 명령 스케줄의 프리로딩된 명령 및 데이터를 주기적으로 평가 및 수정해야 하지만, 호스트 프로세서는 대부분의 처리가 명령 스케줄에 따라 버스 컨트롤러에 의하여 실행되기 때문에 보다 높은 레벨의 처리를 자유롭게 실행한다.
도 1은 네트워크 버스의 대향하는 말단에 연결된 한 쌍의 버스 컨트롤러를 포함하는 본 발명의 일 실시예에 따른 시스템의 개략도이다.
도 2는 버스 컨트롤러 내에 프리로딩된 명령 스케줄이 도시된 본 발명의 일 실시예에 따른 시스템의 블록도이다.
도 3은 명령 스케줄이 프리로딩된 버스 컨트롤러가 다수의 버스 컨트롤러의 동작을 동기화하는데 사용될 수 있는 외부 클록의 제어로 동작하는 본 발명의 다른 실시예에 따른 시스템의 블록도이다.
도 4는 하나의 버스 컨트롤러를 포함하는 본 발명의 다른 실시예에 따른 시스템의 개략도이다.
도 5는 본 발명의 일 실시예에 따른 레지스터로부터 데이터 송신 명령의 동작이 도시된 본 발명의 일 실시예에 따른 시스템의 블록도이다.
도 6은 본 발명의 일 실시예에 따른 레지스터로부터 절대 점프 명령의 동작이 도시된 본 발명의 일 실시예에 따른 시스템의 블록도이다.
다음에, 본 발명을 첨부 도면을 참조하여 바람직한 실시예를 예로 들어 상세하게 설명한다. 그러나, 본 발명은 여러 가지 상이한 형태로 구현될 수 있으므로 본 명세서에 정의된 실시예에만 한정되는 것은 아니며, 이들 실시예는 상기 설명이 상세하고 완전하며 당업자에게 본 발명의 범위를 충분하게 전달하기 위하여 제공된 것이다. 동일한 부재에는 동일한 도면 부호로 표기하였다.
도 1은 본 발명의 일 실시예에 따른 시스템(10)의 도면이다. 여러 가지 실시예의 시스템이 예로서 예시되어 설명되겠지만, 다른 유형의 시스템도 본 발명에 사용될 수 있다. 또한, 본 발명의 시스템 및 방법은 통신 지원, 및 멀티미디어 정보의 운송 수단의 운전자에게 전달 및/또는 각종 구성품의 모니터, 및 진단 및 상태 정보 수집 및/또는 엔진 컨트롤, 트랜스미션 컨트롤, 와이어에 의한 구동 또는 제동 등에 적용될 수 있는 프로세스 컨트롤 응용을 위하여 설계된 자동차 및 항공 응용과 관련하여 주로 설명한다. 그러나, 본 발명의 시스템 및 방법은 자동차와 항공 산업 및 이들 외의 다른 산업 양자 모두의 다양한 다른 응용과 관련하여 사용될 수 있다. 예를 들면, 시스템 및 방법은 산업 자동화 및 접지 시험 응용에 사용될 수 있다.
도 1에 도시된 바와 같이, 일 실시예의 시스템(10)은 제1 버스 컨트롤러(14), 제2 버스 컨트롤러(16), 및 복수의 네트워크 장치(18)를 구비한 네트워크 버스(12)를 포함한다. 버스 컨트롤러는 네트워크 버스에 전기적으로 연결된다. 예시된 실시예에 있어서, 제1 및 제2 버스 컨트롤러는 네트워크 버스가 한 쌍의 버스 컨트롤러 사이에 루프를 형성하도록 같은 위치에 배치된다. 명백한 바와 같이, 버스 컨트롤러는 네트워크 내 상이한 위치에 배치될 수 있다. 도 1에 도시된 시스템은 네트워크 버스 및 상기 네트워크 버스를 따라 상이한 위치에 있는 버스 컨트롤러에 전기적으로 연결된 복수의 네트워크 장치(18)를 또한 포함한다. 따라서, 네트워크 버스는 버스 컨트롤러와 네트워크 장치 사이의 통신은 물론 네트워크 장치들 사이의 통신을 지원한다.
버스 컨트롤러(14, 16)는 각각의 네트워크 장치(18)에 명령을 내리고, 적어도 일부 경우에는, 네트워크 장치로부터 데이터를 수신하도록 설계된다. 예를 들면, 명령은 네트워크 장치가 상태 또는 다른 진단 데이터와 같은 특정 유형의 데이터를 제공하도록 명령할 수 있다. 대안으로서, 버스 컨트롤러에 의하여 내려진 명령은 하나 이상의 네트워크 장치에게 오디오 신호, 비디오 신호 등의 미리 정해진 유형의 신호를 제공하고, 하나 이상의 다른 네트워크 장치는 신호를 수신하도록 명령할 수 있다. 여러 가지 유형의 버스 컨트롤러가 사용될 수 있지만, 버스 컨트롤러 중 한 가지 바람직한 유형은 2000년 12월 14일 발명의 명칭 "Network Controller for Digitally Controlling Network Devices Via a Common Bus"으로 출원된 미합중국 특허출원 제09/736,878호에 개시된 네트워크 컨트롤러이고, 상기 내용을 참조하여 본 명세서에 결합시켰다.
미합중국 특허출원 제09/736,878호에 개시되고 도 1에 예시된 바와 같이, 버스 컨트롤러(14, 16)는 일반적으로 버스 컨트롤러의 동작을 명령하는 호스트 프로세서라고 하는 호스트 컴퓨터(20)와 전기적으로 연결된 상태로 또한 배치되는 것이 일반적이다. 종래의 시스템에 있어서, 예를 들면, 호스트 컴퓨터는 버스 컨트롤러가 명령을 내리도록 명령할 뿐만 아니라 명령의 타이밍을 명령한다. 또한, 호스트 컴퓨터는 네트워크 장치로부터 버스 컨트롤러에 의하여 수신된 데이터를 마이닝하거나 분석할 수 있고, 다수의 다른 우선 순위가 높은 시스템 전체 동작을 실행할 수 있다. 버스 컨트롤러 및 호스트 컴퓨터의 상호 작용 및 각각의 기능에 관한 추가적인 상세에 대하여 후술한다.
도 1에 도시된 시스템(10)의 일반적인 동작 도중에, 일반적으로 제1 버스 컨트롤러(14)는 마스터 컨트롤러로 기능하고, 네트워크 버스(12)에 걸쳐 명령을 내리는 책임이 있다. 또한, 제1 버스 컨트롤러는 네트워크 버스의 1차 모니터로서 작용하고, 네트워크 장치(18)에 의하여 제공된 응답을 수신할 수 있다.
여러 가지 유형의 네트워크 버스(12)가 사용될 수 있다. 일반적으로, 네트 워크 버스는 명령, 데이터 및 다른 신호를 전송하도록 상이하게 선회된 한 쌍의 구리선과 같은 한 쌍, 두 쌍, 세 쌍 이상의 와이어로 구성된다. 따라서, 네트워크 버스는 한 쌍의 와이어를 거치는 표준형 절반의 이중 구성 또는 두 쌍의 와이어를 거치는 완전 이중 구성 중 어느 하나를 지원하도록 설계된다. 동시 동작을 위해 설계된 일부 실시예에 있어서, 한 쌍의 와이어 중 하나는 일반적으로 버스 컨트롤러로부터 네트워크 장치(18)에 클록 신호를 전송하는데 사용될 수 있다. 또한, 네트워크 버스는 파워 및 공통의 접지를 네트워크 장치에 공급하는 한 쌍의 와이어를 포함할 수 있다.
시스템(10)은 광범위한 네트워크 장치(18)를 포함할 수 있고, 이들 중 모두가 아닌 대부분은 버스 컨트롤러로부터 멀리 떨어져 위치된다. 예를 들면, 네트워크 장치는 상태 또는 진단 데이터와 같은 데이터를 버스 컨트롤러 및 이어서 호스트 컴퓨터(20)에 제공하는 센서를 포함할 수 있으므로, 센서가 감지하는 무엇이든 건강 상태 및/또는 동작이 모니터링될 수 있다. 자동차 응용에 있어서, 예를 들면, 네트워크 장치는 스로틀 위치, 오일 압력, 물 온도, 트랜스미션액 압력, 시트 위치, 로크방지 브레이크 시스템, 서스펜션, 수동적 안전 장치 시스템 및 스티어링 시스템을 모니터링하는 센서를 포함할 수 있다. 조작자에게 피드백을 제공하기 위하여, 네트워크 장치는 상태 또는 진단 데이터를 직접 또는 적절하게 처리한 후 표시하는 차량의 계기판 표시 장치와 같은 하나 이상의 디스플레이를 또한 포함할 수 있다. 대안으로서, 네트워크 장치는 버스 컨트롤러로부터의 명령에 응답하여 특정 기능을 실행하는 액추에이터를 포함할 수 있다.
자동차 응용에 있어서, 예를 들면, 네트워크 장치는 스로틀 위치를 제어하는 액추에이터, 로크방지 브레이크 시스템, 서스펜션, 수동적 안전 장치 시스템 및 활성 서스펜션 시스템을 포함할 수 있다. 또한, 네트워크 장치는 오디오 또는 비디오 소스를 포함할 수 있다. 이로써, 네트워크 장치는 라디오 수신기, 테이프 카세트 플레이어, 콤팩트 디스크 플레이어, 휴대 전화 수신기 또는 제어 신호 및 일부 경우에 스트리밍 오디오 신호를 포함하는 오디오 신호를 네트워크 버스에 제공하는 다른 오디오 소스를 포함할 수 있다. 따라서, 네트워크 장치는 네트워크 버스로부터 오디오 신호를 수신하여 대응하는 청취가능한 출력을 제공하는 스피커, 헤드폰 잭 등을 포함할 수 있다. 마찬가지로, 네트워크 장치는 텔레비전 수상기, 비디오 카세트 플레이어 또는 스트리밍 비디오 신호를 포함하여 비디오 신호를 네트워크 버스에 제공하는 다른 비디오 소스를 포함할 수 있다. 따라서, 네트워크 장치는 비디오 신호를 수신하여 상기 비디오 신호에 따라 영상을 표시하는 비디오 모니터 등을 포함할 수 있다.
네트워크 장치(18)가 네트워크 버스(12)에 직접 연결될 수 있지만, 한 가지 바람직한 실시예의 네트워크 장치는 2000년 12월 12일 발명의 명칭 "Network Device Interface for Digitally Interfacing Data Channels to a Controller Via a Network"으로 출원된 미합중국 특허출원 제09/735,146호에 개시된 각각의 네트워크 장치 인터페이스(22)에 결합된 것으로서, 상기 개시 내용 모두를 참조하여 본 명세서에 결합시켰다. 상기 바람직한 실시예에 있어서, 네트워크 장치 인터페이스는 네트워크 버스에 신호를 전송하고 네트워크 버스로부터 신호를 수신하도록 네트 워크 버스와 전기적으로 통신 상태로 배치된다. 각각의 네트워크 장치 인터페이스는 각각의 데이터 채널을 거쳐 하나 이상의 네트워크 장치와 또한 통신된다. 각각의 네트워크 장치 인터페이스가 도 1에는 하나의 네트워크 장치에 연결된 것으로 도시되어 있지만, 네트워크 장치 인터페이스는 원하는 경우 두 개 이상의 네트워크 장치에 연결될 수 있다. 미합중국 특허출원 제09/735,146호에 개시된 바와 같이, 네트워크 장치 인터페이스는 네트워크 버스를 통해 네트워크 장치에 의한 통신이 용이하도록 여러 가지 기능을 실행한다. 예를 들면, 네트워크 장치 인터페이스는 결합된 네트워크 장치에 의하여 수집된 데이터를 기억할 수 있으므로, 상기 기억된 데이터가 요청에 따라 네트워크 버스를 통해 버스 컨트롤러(14, 16)에 제공될 수 있다. 네트워크 장치가 아날로그 장치인 경우, 네트워크 장치 인터페이스는 또한 네트워크 버스에 의하여 지원된 디지털 포맷과 네트워크 장치에 의하여 지원된 아날로그 포맷 사이로 신호를 변환시킬 수 있다.
시스템(10)을 초기화 했을 때, 제1 버스 컨트롤러(14)는 네트워크 버스(12)에 연결된 네트워크 장치(18)의 목록을 조사하고 독특한 논리 어드레스를 각각의 네트워크 장치에 할당함으로써 버스 컨트롤러가 특정의 네트워크 장치 또는 특정 그룹의 네트워크 장치와 통신할 수 있다. 광범위한 기술을 사용하여 네트워크 버스에 연결된 네트워크 장치의 목록을 조사하고 독특한 논리 어드레스를 네트워크 장치에 할당할 수 있다. 네트워크 장치의 목록을 조사하고 독특한 논리 어드레스를 할당하는 한 가지 바람직한 기술은 2001년 4월 26일 발명의 명칭 "Systems and Methods for Assigning an Address to a Network Device Added to an Existing Network"으로 출원된 미합중국 특허출원 제09/735,146호 및 미합중국 예비 특허출원 제60/286,793호 및 상기와 동시에 발명의 명칭 "Systems and Methods for Assigning an Address to a Network Device Added to an Existing Network"으로 출원된 PCT 특허출원에 개시된 비트 경합 기술이고, 이들 개시 내용 모두를 참조하여 본 명세서에 결합시켰다.
동작 시, 제1 버스 컨트롤러(14)는 여러 가지 명령을 내리고 각각의 네트워크 장치(18)는 상기 명령에 따라 응답한다. 버스 컨트롤러 및 네트워크 장치는 다수의 상이한 프로토콜 중 임의의 하나에 따라 통신할 수 있다. 예를 들면, 미합중국 특허출원 제09/736,878호에 개시된 바와 같이, 버스 컨트롤러 및 네트워크 장치는 맨체스터 부호 바이페이즈 센서 및 시스템(BiSenSys) 프로토콜에 따라 통신할 수 있다. 대안으로서, 버스 컨트롤러 및 네트워크 장치는 범용 비동기 송수신기(universal asynchronous receiver transmitter: UART) 물리층과 호환가능한 프로토콜에 따라 통신할 수 있다. 그러나, 프로토콜은 오버헤드를 최소화하고 이에 대응하여 데이터 전송 능력을 최대화하도록 선택되는 것이 바람직하다. 또한, 프로토콜은 네트워크 장치 또는 네트워크 장치 인터페이스(22) 어느 것도 고레벨 프로세서를 필요로 하지 않도록 상대적으로 간단한 것으로 선택되는 것이 바람직하다. 대신에, 버스 컨트롤러 및 이와 결합된 호스트 컴퓨터(20)는 처리 파워 대부분을 포함할 수 있고, 네트워크 장치 인터페이스는 하드웨어, 소프트웨어 또는 펌웨어에 용이하게 구현되는 논리를 포함할 수 있다. 시스템(10)에 의하여 지원된 통신은 동기 또는 비동기 중 어느 하나일 수 있고 여러 가지 유형의 메세지 전송을 포함할 수 있다. 예를 들면, 미합중국 특허출원 제09/736,878호에 개시된 바와 같이, 한 가지 바람직한 통신 기술은 각각 미리 정해진 길이 및 치수를 갖는 명령 프레임 및 데이터 프레임을 포함하는 메세지 프레임의 전송에 좌우된다.
프로토콜에 따라, 시스템은 여러 가지 명령 세트를 또한 지원할 수 있다. 프로토콜과 함께, 명령 세트는 네트워크 버스를 거쳐 전송되어야 하는 오버헤드를 최소화하고 상대적으로 간단해지도록 선택되는 것이 바람직하다. 적합한 명령의 한 가지 예는 미합중국 특허출원 제09/735,146호에 개시되어 있고 다음에 나타낸다.
명령 (#) 명령 설명
서비스 명령
00 동작하지 않음
01 내장 시험
02 리셋
03 상태 레지스터 판독
04 장치 인벤토리 이네이블
05 장치 인벤토리
06 컨트롤 패스
07 웨이크
명령 (#) 명령 설명
08 슬리프
09 E-교정
0A Z-교정
0B 동기화
0C 보 선택
0D 세트 소스
0E 터미네이터 삽입
0F 예약
데이터 명령
20 트리거
21 PiP 상에 트리거
22 트리거 및 판독
23 인-데이터 레지스터 워드 판독
24 인-데이터 스택 워드 판독
25 인-데이터 스택 더블 워드 판독
26 인-데이터 스택 블록 판독
명령 (#) 명령 설명
27 인-데이터/아웃-데이터 스택 깊이 질의
28 아웃-데이터 스택 워드 기입
29 아웃-데이터 스택 워드 기입/인-데이터 레지스터에 획득
2A 아웃-데이터 스택 블록 기입
2B-2F 예약
메모리 명령
30 메모리 포인터 세트
31 현재의 포인터로 메모리 워드 판독
32 현재의 포인터로 메모리 블록 판독
33 현재의 포인터로 메모리 워드 기입
34 현재의 포인터로 메모리 블록 기입
35 지나간 포인터로 메모리 워드 판독
36 지나간 포인터로 메모리 블록 판독
37 지나간 포인터로 메모리 워드 기입
38 지나간 포인터로 메모리 블록 기입
39-7F 예약
명령 중 한 가지 레벨은 서비스 명령이다. 서비스 명령은 네트워크 보조 관리, 네트워크 장치 인터페이스 상태, 파워 컨트롤, 교정 및 버스 마스터 조정을 하기 위한 것이다. 제2 유형의 명령은 데이터 유형 명령이다. 상기 명령은 시간에 따른 결정 방식으로 데이터 획득 및 컨트롤을 위한 것이다. 네트워크 효율은 네트워크 장치가 하나 이상의 데이터 포인트를 직접 이동시킬 수 있도록 하거나, 또는 미리 정해진 길이 블록으로서 하나 이상의 데이터 포인트가 전송됨으로서 최대화된다. 예를 들면, 트리거 명령이 버스 컨트롤러에 의하여 사용되어 센서로부터 유입되는 데이터 측정을 초기화하거나 또는 액추에이터용 물리량으로 데이터 변환시킨다.
서비스 및 데이터형 명령 외에, 상기 예의 명령 세트는 메모리 명령을 또한 포함한다. 이들 명령으로 인하여 데이터가 기입 및 판독될 수 있는 특정의 메모리 위치 또는 기능에 액세스할 수 있다. 이로써 랜덤 액세스 데이터 블록이 거의 오버헤드없이 하나의 시스템과 다른 시스템 사이로 효과적으로 전송될 수 있다. 또한, 직접 메모리 액세스 및/또는 하나 이상의 데이터 버퍼 블록이 이동될 수 있다. 명령 세트에 관한 추가의 상세는 2001년 4월 26일 발명의 명칭 "System and Method for Reestablishing the Impedance Stability of a Network Bus"으로 출원된 미합중국 특허출원 제09/735,146호과 미합중국 예비 특허출원 제60/286,644호 및 발명의 명칭 "Systems, Methods and Bus Controllers for Creating an Event Trigger on a Network Bus"으로 출원된 미합중국 예비 특허출원 제60/286,759호, 및 동일자에 발명의 명칭 "Systems and Methods for Maintaining Network Stability"으로 출원된 PCT 특허출원 제PCT/US02/13367호와 발명의 명칭 "Systems, Methods and Bus Controllers for Creating an Event Trigger on a Network Bus"으로 출원된 PCT 특허출원 제PCT/US02/13303호에 개시되어 있으며, 이들 내용 모두를 참조하여 본 명세서에 결합시켰다.
본 발명에 있어서, 버스 컨트롤러(14), 보다 구체적으로는, 버스 컨트롤러와 결합된 메모리 장치(24)에는 마이크로코드라고 하는 일련의 인스트럭션이 프리로딩되어 명령 스케줄(동작 스케줄이라고 하는 경우가 종종 있음)을 형성한다(예를 들면, 도 2 참조). 일련의 인스트럭션은 여러 가지 방식으로 제공될 수 있지만, 호스트 컴퓨터(20)는 버스 컨트롤러의 메모리 장치를 일련의 인스트럭션으로 프리로딩시키는 것이 일반적이다. 버스 컨트롤러는 다른 개입이나 또는 호스트 컴퓨터의 명령없이 일련의 인스트럭션을 실행할 수 있다. 따라서, 호스트 컴퓨터는 시스템 전체 동작 및 데이터 분석을 포함하는 다른 기능을 실행하는 처리 시간 및 파워의 상당 부분을 소모할 수 있다. 또한, 일련의 인스트럭션(즉, 명령 스케줄)을 버스 컨트롤러 내에 프리로딩함으로써, 버스 컨트롤러는 여러 가지 명령이 미리 정해진 시간에 네트워크 버스 상에 확실하게 배치될 수 있으므로, 시스템(10)의 시간에 따른 결정 방식으로 동작이 가능하다.
임의의 일련의 인스트럭션이 버스 컨트롤러(14) 내에 프리로딩될 수 있지만, 하나의 바람직한 실시예의 시스템(10)에는 반복해서 실행되는 일련의 인스트럭션이 프리로딩된다. 따라서, 비교적 적은 양의 일련의 인스트럭션이 버스 컨트롤러 내에 프리로딩될 수 있고, 상당 기간 동안 네트워크 버스(12)를 통해 통신을 제어하도록 버스 컨트롤러에 의하여 반복적으로 실행될 수 있으므로, 다른 기능을 위해 호스트 컴퓨터를 자유롭게 한다. 반복되는 일련의 인스트럭션이 버스 컨트롤러 내에 프리로딩되고 버스 컨트롤러에 의하여 반복적으로 실행되지만, 호스트 컴퓨터는 프리로딩된 일련의 인스트럭션에 의하여 예측된 기능이 아닌 다른 기능을 실행하도록 버스 컨트롤러에 명령하기 위하여 추가의 명령을 가끔 제공하는 것이 필요할 수 있다. 그러나, 상기의 경우에도, 호스트 컴퓨터의 워크로드는 실질적으로 감소되고, 버스 컨트롤러가 시간에 따른 결정 방식으로 동작할 수 있는 신뢰성은 증가된다.
일반적으로, 일련의 인스트럭션은 버스 컨트롤러의 실행 시간 이전 또는 도중에 버스 컨트롤러(14) 내에 프리로딩된다. 일련의 인스트럭션을 기억하는 메모리 장치(24)가 비휘발성 메모리 장치인 실시예에 있어서, 버스 컨트롤러는 전원을 켜거나 또는 호스트 컴퓨터의 명령에 따라 명령을 실행하도록 시작할 수 있다. 대안으로서, 메모리 장치가 휘발성 메모리 장치인 실시예에 있어서, 호스트 컴퓨터는 전원을 켠 다음 및 버스 컨트롤러가 명령 실행을 시작하기 전에 일련의 인스트럭션을 버스 컨트롤러 내에 프리로딩해야 한다.
일련의 인스트럭션은 일부가 대응하는 데이터 필드를 가질 수 있는 다양한 마이크로코드를 포함할 수 있다. 그러나, 예로서 한 세트의 마이크로코드 명령에 대하여 후술한다. 상기 예시적인 실시예에 있어서, 마이크로코드 명령은 제로로 표시된 메모리 장치(24)의 어드레스에 일련의 인스트럭션의 실행을 리셋하는 리셋 명령을 포함한다. 도 2에 표시된 바와 같이, 일련의 인스트럭션은 초기 명령이 제로인 메모리 어드레스에 위치되도록 메모리 장치 내에 적재되는 것이 일반적이다. 따라서, 리셋 명령으로 인하여 일련의 인스트럭션이 초기 명령을 다시 시작하도록 실행된다. 이해할 수 있는 바와 같이, 리셋 명령은 버스 컨트롤러와 결합된 메모리 장치가 마이크로코드 명령을 포함하는 경우 단지 유효하며, 메모리 장치가 마이크로코드 명령을 포함하지 않는 경우 작용하지 않는다.
마이크로코드 명령은 일련의 인스트럭션의 실행을 중지시키는 중지 명령을 또한 포함한다. 중지 명령에 이어서, 미리 정해진 신호 수신에 응답하여 동작이 재개될 수 있다. 다른 마이크로코드 명령은 네트워크 버스(12)를 통해 내려진 마이크로코드 사이에 시간 지연을 삽입하는 지연 명령이다. 리셋 또는 중지 명령 어느 것도 대응하는 데이터 필드를 갖지 않지만, 지연 명령에 대응하는 데이터 필드는 삽입될 지연량(일반적으로 나노초로 측정됨)을 특정한다.
다른 마이크로코드 명령은 지연 응답 명령이다. 지연 응답 명령은 네트워크 버스(12)를 통해 내려진 마이크로코드 사이에 지연을 삽입하고, 상기 지연으로, 보조 관리 때문에, 네트워크 장치(18)에 의하여 제공될 바로 앞선 선행 마이크로코드에 응답할 수 있다. 모든 다른 지연에 대하여는, 지연 명령이 사용된다. 지연 응답 명령과 결합된 데이터 필드는 지연 데이터 바이트 개수를 특정한다. 따라서, 실제 지연 시간은 네트워크 버스를 통해 행해지는 통신의 보 속도(baud rate)에 좌우된다.
또한, 마이크로코드 명령은 버스 컨트롤러(14)가 네트워크 버스(12)를 통해 명령을 전송하도록 명령하는 송신 명령을 포함한다. 네트워크 버스를 통해 전송될 명령은 송신 명령과 결합된 데이터 필드에 의하여 정해진다. 후술하는 바와 같이, 예를 들면, 송신 명령은 판독 명령 또는 기입 명령이 네트워크 버스를 통해 전송되도록 명령할 수 있다. 이로써, 상기의 경우, 송신 명령과 결합된 데이터 필드는 명령이 내려지는 네트워크 장치(18)의 어드레스를 또한 식별한다. 일반적으로, 패리티 비트는 데이터 필드에 포함되지 않고, 네트워크 버스를 통해 명령이 전송될 때 버스 컨트롤러에 의하여 자동으로 계산 및 추가된다. 마찬가지로, 마이크로코드 명령은 데이터 프레임이 네트워크 버스를 통해, 일반적으로는 네트워크 장치로부터 버스 컨트롤러로 전송될 수 있도록 하는 데이터 송신 명령을 또한 포함하고, 상기 전송될 데이터 프레임은 데이터 송신 명령과 결합된 데이터 필드 내에 형성된다. 송신 명령에서와 같이, 패리피 비트는 결합된 데이터 필드 내에 포함되지 않고, 오히려 네트워크 버스를 통해 명령이 전송되는 시점에 버스 컨트롤러에 의하여 자동으로 계산 및 추가된다.
상기 예시적인 실시예의 마이크로코드 명령 세트는 일련의 인스트럭션이 결합된 데이터 필드에 의하여 정해진 메모리 어드레스로 점프하도록 실행시키는 절대 점프 명령을 또한 포함한다. 리셋 명령에서와 같이, 절대 점프 명령은 버스 컨트롤러(14)와 결합된 메모리 장치(24)가 마이크로코드 명령을 포함하는 경우에 단지 유효하고, 메모리 장치가 마이크로코드 명령을 포함하지 않는 경우 작용하지 않는다. 최종적으로, 마이크로코드 명령은 버스 컨트롤러의 수신 버퍼(도시되지 않음) 내에 현재 존재하는 데이터를 사용하여 데이터 프레임을 네트워크 버스(12)를 통해 전송하는 데이터 에코 명령을 포함할 수 있다. 수신 버퍼가 데이터를 포함하지 않거나 또는 버퍼 내의 데이터가 유효하지 않은 경우, 데이터 에코 명령은 스킵되고 네트워크 버스를 통해 데이터가 전송되지 않는다. 전술한 바와 같이, 패리티 비트는 데이터 프레임을 네트워크 버스를 통해 전송하는 도중에 버스 컨트롤러에 의하여 자동으로 계산 및 추가된다.
상기 예시적인 실시예의 마이크로코드 명령에 대하여 전술하였지만, 마이크로코드 명령 세트 및 이와 관련된 결합 데이터 필드를 다음 표에 요약한다:
마이크로코드 명령 데이터 필드
리셋 데이터 필드 사용되지 않음
중지 데이터 필드 사용되지 않음
지연 특정 개수의 지연 버스 데이터 비트
지연 응답 특정 개수의 지연 버스 데이터 비트
명령 송신 송신될 명령 프레임용 데이터 (패리티 포함되지 않음)
데이터 송신 송신될 데이터 프레임용 데이터 (패리티 포함되지 않음)
절대 점프 점프 위치 어드레스
데이터 에코 데이터 필드 사용되지 않음
버스 컨트롤러(14)가 실행하는 동작에 따라, 마이크로코드 명령 및 결합된 데이터 필드로 구성되는 미리 정해진 일련의 인스트럭션이 버스 컨트롤러와 결합된 메모리 장치(24) 내에 적재된다. 예시를 위하여, 한 세트의 마이크로코드 명령 및 데이터 필드를 도 2에 도시한다. 도시된 바와 같이, 일련의 인스트럭션은, 원하는 경우 명령이 다른 위치에 기억될 수 있지만, 메모리 어드레스 제로 시작과 함께 기억된다. 동작 시작 시, 버스 컨트롤러는 송신 명령인 초기 마이크로코드 명령을 실행한다. 송신 명령은 네트워크 버스(12)를 통해 전송될 명령을 트리거 명령으로 정하는 결합된 데이터 필드를 갖는다. 다음에, 다른 송신 명령에는 어드레스 1을 갖는 네트워크 장치에 대한 판독 명령으로 전송될 명령을 정하는 결합된 데이터 필드가 제공된다(도 2에 N1으로 표기). 다음에, 지연 응답 명령이 실행되어 네트워크 장치(N1)가 네트워크 버스(12) 상에 w로 표기된 데이터를 판독할 수 있다. 다음에, 다른 송신 명령은 어드레스 2를 갖는 네트워크 장치에 전송될 판독 명령을 정하는 결합된 데이터 필드로 실행된다(도 2에 N2로 표기). 다음에, 지연 응답 명령은 네트워크 버스 상에 x로 표기된 요청 데이터를 판독하는 기간을 네트워크 장치(N2)에 제공하도록 실행된다.
네트워크 버스 상에서 데이터 x를 판독한 후, 송신 명령은 데이터가 어드레스 3을 가진 네트워크 장치에 기입되어야 하는 것으로 표시되는 결합 데이터 필드로 다시 실행된다(도 2에 N3로 표기). 따라서, 데이터 송신 명령은 네트워크 장치(N3)에 전송될 데이터 y를 식별하는 데이터 필드로 실행된다. 최종적으로, 다른 송신 명령은 데이터가 어드레스 4를 갖는 네트워크 장치에 기입되어야 하는 것으로 표시되는 데이터 필드로 실행된다(도 2에 N4로 표기). 다음에, 데이터 송신 명령은 네트워크 장치(N4)에 기입될 데이터를 제공하는 결합 데이터 필드로 다시 실행된다. 상기의 경우, 데이터는 z로 나타낸다. 일련의 인스트럭션을 반복하기 위하여, 절대 점프 명령이 메모리 위치 제로로 점프를 실행하라는 데이터 필드로 실행되므로, 프로세스가 효과적으로 재실행된다. 따라서, 상기 예의 일련의 인스트럭션은 제1 및 제2 센서와 같은 네트워크 장치(N1, N2)에 의하여 제공된 데이터를 주기적으로 판독하고, 제3 및 제4 액추에이터와 같은 네트워크 장치(N3, N4)에 데이터를 주기적으로 기입한다.
도 2에 도시된 바와 같이, 버스 컨트롤러(14)는 네트워크 버스(12) 상에서 판독된 데이터를 수신하는 수신기(26)를 포함한다. 상기 데이터는 추가 처리를 위하여 호스트 컴퓨터(20)에 제공되는 것이 일반적이다. 예를 들면, 호스트 컴퓨터는 데이터를 구문 해석한 다음, 응용에 따라 각종의 데이터 분석 및/또는 마이닝 작업을 실행할 수 있다.
도 2의 버스 컨트롤러(14)와 결합된 메모리 장치(24) 내에 프리로딩된 일련의 인스트럭션의 실행은 내부 클록(28)에 의하여 제어되지만, 일련의 인스트럭션의 실행은 외부 클록에 의해서도 제어될 수 있다. 이로써, 도 3에는 외부 클록(30)이 버스 컨트롤러, 특히 일련의 인스트럭션을 기억하는 메모리 장치에 제공된 유사한 시스템(10)이 도시되어 있다. 따라서, 버스 컨트롤러 및 각각의 네트워크 버스의 동작을 제어 및 동기화하기 위하여 동일한 외부 클록이 여러 개의 버스 컨트롤러에 제공될 수 있다.
한 쌍의 버스 컨트롤러(14, 16) 사이에 연장되는 네트워크 버스(12)를 사용하는 시스템(10)을 예시하여 설명했지만, 본 발명의 시스템 및 방법은 광범위한 다른 네트워크 버스 기술에 적합할 수 있다. 예를 들면, 시스템은 도 4에 도시된 바와 같이 네트워크 버스의 한쪽 말단 또는 네트워크 버스를 따라 임의의 지점에서 네트워크 버스에 연결된 하나의 버스 컨트롤러를 갖는 네트워크 버스를 포함할 수 있다.
본 발명의 임의의 실시예에 있어서, 시스템(10) 및 방법은 일련의 인스트럭션 형태가 일반적인 명령 스케줄을 버스 컨트롤러(14)와 결합된 메모리 장치(24)에 사전 적하도록 제공된다. 다음에, 버스 컨트롤러는 네트워크 버스에 적절한 명령을 내리기 위해 일련의 인스트럭션을 실행할 수 있다. 일련의 인스트럭션을 버스 컨트롤러 내에 프리로딩함으로써, 호스트 컴퓨터(20)의 워크로드가 감소된다. 호스트 컴퓨터의 워크로드가 감소됨으로써 호스트 컴퓨터는 시스템간 동작 및/또는 데이터 분석 실행과 같은 다른 기능을 실행하는 한편, 버스 컨트롤러는 프리로딩된 일련의 인스트럭션을 실행할 수 있다. 또한, 버스 컨트롤러가 일련의 인스트럭션의 실행을 제어할 수 있도록 함으로써, 버스 컨트롤러는 명령이 여러 개의 네트워크 장치와 적절하게 상호 작용하도록 시간에 따른 결정 방식으로 확실하게 내려지도록 할 수 있다.
상기에서 예시 및 설명한 바와 같이, 본 발명의 시스템 및 방법은 호스트 프로세서를 사용하지 않고 시간에 따른 결정 방식으로 네트워크 처리를 실행할 수 있는 성능을 제공한다. 구체적으로, 본 발명의 시스템 및 방법은 버스 컨트롤러에 의하여 내려진 명령이 네트워크 프로토콜용이며 주기적으로 반복형인 경우(즉, 주기적으로 계속해서 반복되는 프로토콜 일련의 명령)에 관한 것이다. 본 발명의 시스템 및 방법은 상기 반복되는 일련의 명령을 호스트 프로세서가 실행하여 명령 및 데이터를 일련의 인스트럭션 형태가 일반적인 명령 스케줄 내에 프리로딩해야 하는 작업이 생략된다. 명령 스케줄은 마이크로코드라고 하는 명령 스케줄 실행용 코드를 따라 버스 컨트롤러 내에 기억된다. 동작 시, 반복 명령은 호스트 프로세서와 반대로 주기적인 명령 스케줄을 사용하여 버스 컨트롤러에 의하여 실행된다.
그러나, 전술한 바와 같이, 본 발명의 시스템 및 방법은 네트워크 시스템이 동작하는 도중에 변하지 않는 명령 및 데이터 시리즈를 포함하는 명령 스케줄만을 프리로딩한다. 즉, 주기적인 명령 스케줄은 변경가능하지 않은 일정한 명령 및 데이터만 포함한다. 이로써, 주기적인 스케줄은 프로그래밍된 데이터 획득 또는 출력의 연속적인 스트리밍이 실행되도록 할 수 있다. 이것은 데이터 획득 응용 또는 프로세스에 변형이 필요하지 않은 간단한 반복 제어 시퀀스에는 허용가능하지만, 주기적인 명령 스케줄을 실행하는 도중에 명령 스케줄 내에 들어 있는 명령 및 데이터의 동적 변경이 네트워크 시스템이 양호하게 프로세스 제어할 수 있도록 하는데 바람직한 경우도 있다. 즉, 네트워크 시스템과 결합된 프로세스에 따라 동작 도중에 변경 및 업데이트될 수 있는 명령 및 데이터를 갖는 프리로딩된 명령 스케줄을 제공하는 것이 바람직하다.
예를 들면, 네트워크 시스템은 시간이 지나면서 변할 수 있는 변수를 갖는 프로세스에 사용될 수 있다. 이들 변수가 변함에 따라, 여러 개의 네트워크 장치에 전송된 명령 및 데이터는 프로세스가 이들 변화에 따라 적절하고 정확한 제어가 학보되도록 변경될 수 있다. 상기의 경우, 명령 스케줄 내에 프리로딩된 명령 및 데이터 중 일부는 적절하게 제어되도록 변경될 수 있다.
이로써, 본 발명의 시스템 및 방법은, 일부 실시예에 있어서, 호스트 프로세서가 컨텐츠를 수정하고 매입된 명령 스케줄을 실행하여 양호한 프로세스 제어를 제공할 수 있는 절차를 제공한다. 본 발명의 시스템 및 방법은 호스트 컨트롤러가 네트워크로부터 데이터를 수신하고 분석하며, 분석 결과를 계산하고, 명령 스케줄 내에 명령 또는 변수로 재삽입될 수 있는 적당한 프로세스 변형을 제공할 수 있다. 호스트 프로세서는 이들 실시예에서 명령 스케줄의 프리로딩된 명령 및 데이터를 주기적으로 평가하고 변경해야 하지만, 호스트 프로세서는 명령 스케줄에 따른 처리 대부분이 버스 컨트롤러에 의하여 실행되기 때문에, 보다 높은 레벨의 처리를 실행할 수 있게 된다.
중요하기로는, 도 5 및 도 6을 참조하면, 본 발명의 시스템 및 방법은 버스 컨트롤러와 결합된 메모리 장치(24) 내에 위치된 레지스터(40) 시리즈가 제공된다. 17비트로 긴 것이 바람직한 이들 레지스터는 변수에 대한 값을 명령 스케줄 내에 기억하는데 사용된다. 즉, 호스트 프로세서가 네트워크 시스템으로부터의 데이터를 분석하므로, 레지스터는 분석 결과를 계산하고 명령 스케줄의 이들 변수에 대하여 적절한 프로세스 변형을 제공한다. 이들 업데이트가 레지스터에 기억되고, 이 레지스터에서 이들 업데이트가 명령 및 변수로 명령 스케줄 내에 재삽입된다.
업데이트되거나 또는 변형된 값을 명령 스케줄 내에 결합시키기 위하여, 본 발명의 시스템 및 방법은 명령 스케줄 내의 변수 명령 및 데이터를 변경시켜 양호한 프로세스 제어를 제공하도록 레지스터 시리즈로부터 명령 스케줄 내에 값을 로딩하는 추가 세트의 마이크로코드를 포함한다. 이들 추가의 마이크로코드를 다음 표에 나타낸다:
작용 데이터 필드
레지스터로부터 명령 송신 명령값을 검색하기 위한 내부 레지스터의 어드레스
레지스터로부터 데이터 송신 데이터값을 검색하기 위한 내부 레지스터의 어드레스
레지스터로부터 지연 지연값을 검색하기 위한 내부 레지스터의 어드레스
레지스터로부터 절대 점프 점프값을 검색하기 위한 내부 레지스터의 어드레스
레지스터로부터 명령 송신 마이크로코드는 종래의 명령 송신과 유사하지만, 데이터 필드의 데이터는 호스트 프로세서에 의하여 변경가능하다. 구체적으로, 명령 및 데이터가 프리로딩되어 재구성이 되지 않는 전술한 실시예에서는 명령 송신이 명령 스케줄 내에 명령이 프리로딩된 데이터 필드의 데이터를 송신한다. 그러나, 레지스터로부터 명령 송신은 레지스터(40) 중 하나로부터의 데이터를 명령 프레임에 대한 데이터로서 사용한다. 레지스터는 레지스터로부터 명령 송신 마이크로코드의 데이터 필드 내에 정해지고, 이로써 버스 컨트롤러가 명령 스케줄을 실행할 때 버스 컨트롤러에 의하여 내려진 명령은 적절한 레지스터(40)에 기억된 값을 단지 변경시킴으로써 호스트 프로세서에 의하여 구성될 수 있다.
레지스터로부터 데이터 송신 마이크로코드 명령은 레지스터로부터 명령 송신 마이크로코드와 유사하지만, 명령에 반하여 데이터를 송신하는데 사용된다. 구체적으로, 레지스터로부터 명령 송신은 레지스터(40) 중 하나로부터의 데이터를 데이터 프레임에 대한 데이터로서 사용한다. 레지스터는 데이터 송신에 대한 데이터 필드 내에 정해지고, 이로써 버스 컨트롤러가 명령 스케줄을 실행할 때 버스 컨트롤러에 의하여 송신된 데이터는 적절한 레지스터(40)에 기억된 값을 단지 변경시킴 으로써 호스트 프로세서에 의하여 구성될 수 있다.
전술한 바와 같이, 본 발명의 시스템 및 방법은 동작 시 미리 정해진 지연을 허용할 수 있는 지연 마이크로코드를 포함한다. 명령 및 데이터가 프리로딩되어 재구성이 가능하지 않는 전술한 실시예에 있어서, 지연값에 대한 데이터는 명령 스케줄 내에 지연 명령으로 미리 기억된다. 그러나, 레지스터로부터 지연 명령은 레지스터(40) 중 하나로부터의 데이터를 지연 시간에 대한 데이터로서 사용한다. 레지스터는 지연 명령에 대한 데이터 필드 내에 정해진다. 또한, 버스 컨트롤러가 명령 스케줄을 실행할 때 버스 컨트롤러에 의하여 내려진 레지스터로부터 지연 명령에 의하여 송신된 지연값은 적절한 레지스터(40) 내에 기억된 값을 단지 변경시킴으로써 호스트 프로세서에 의하여 구성가능하다.
또한, 본 발명의 시스템 및 방법은 레지스터로부터 절대 점프 마이크로코드 명령을 포함한다. 상기 명령은 절대 점프값에 대한 데이터는 명령 스케줄 내에 명령이 기억된 데이터 필드에 반하여 레지스터(40)로부터 얻고, 레지스터는 절대 점프 코드에 대한 데이터 필드 내에 정해지는 것을 제외하고는 절대 점프 코드와 동일한 작용을 실행한다. 다른 추가 명령에서와 같이, 점프값은 명령에 대한 데이터 필드로서 사용된 적절한 레지스터(40)에 기억된 값을 단지 변경시킴으로써 호스트 프로세서에 의하여 구성가능하다. 이로써, 호스트 프로세서는 버스 컨트롤러가 레지스터 내의 값을 변경시킴으로써 명령 스케줄 내에서 점프하는 위치를 제어할 수 있다.
도 5 및 도 6을 참조하면, 레지스터로부터 데이터 송신 및 레지스터로부터 절대 점프 명령의 용도에 대한 예가 예시되어 있다. 예를 들어 도 5를 참조하면, 일련의 인스트럭션은 메모리 어드레스 제로로부터 시작하여 기억된다. 동작 개시 시, 버스 컨트롤러는 명령 송신인 초기 마이크로코드 명령을 실행한다. 명령 송신은 트리거 명령으로 네트워크 버스(12)를 통해 전송되는 명령 프레임을 정하는 결합 데이터 필드를 갖는다. 다음에, 다른 명령 송신에는 전송될 명령 프레임이 어드레스 1을 갖는 네트워크 장치를 위한 판독 동작임을 나타내는 결합된 데이터 필드가 제공된다(도 2에 N2로 표기됨). 다음에, 네트워크 장치(N1)가 데이터 w를 제공할 수 있도록 지연 응답 명령이 실행된다. 다음에, 다른 명령 송신이 실행되고, 결합된 데이터 필드는 전송될 명령 프레임이 어드레스 2를 갖는 네트워크 장치를 위한 판독 동작임을 나타낸다(도 2에 N2로 표기됨). 다음에, 네트워크 장치(N2)에 요청 데이터 x를 제공하는 기간을 제공하도록 지연 응답 명령이 실행된다.
다음 세트의 명령에 있어서, 명령 스케줄은 명령과 결합된 데이터가 호스트 프로세서에 의하여 변경될 수 있는 레지스터로부터 데이터 송신 명령을 포함한다. 상기 방법으로 인하여 호스트 컨트롤러가 네트워크 및 다른 소스로부터 추출된 데이터로부터 계산된 제어 동작 데이터가 실시간에 가깝게 네트워크 상에 배치될 수 있도록 실시간으로 네트워크 동작과 비동기로 네트워크 상에 데이터를 되돌릴 수 있다.
구체적으로, 명령 송신은 데이터가 어드레스 3을 갖는 네트워크 장치에 기입되어야 함을 나타내는 명령 송신과 결합된 데이터 필드로 또한 실행된다(도 2에 N3으로 표기됨). 명령과 결합된 데이터는 레지스터로부터 데이터 송신 명령을 사용 하여 어드레스 1을 갖는 레지스터(40)로부터 제공된다. 이로써, 어드레스 10을 갖는 레지스터에 기억된 값 y는 어드레스 3을 갖는 네트워크 장치에 송신된다. 값 y는 레지스터 하나에 기억되기 때문에, 값 y는 가변이고 호스트 프로세서에 의하여 정해진다.
또한, 다른 명령 송신은 데이터가 어드레스 4를 갖는 네트워크 장치에 기입되어야 함을 나타내는 데이터 필드로 실행된다(도 2에 N4로 표기됨). 다음에, 레지스터로부터 데이터 송신 명령은 데이터가 어드레스 12를 갖는 레지스터로부터 네트워크 장치에 기입될 데이터를 제공하는 결합된 데이터 필드로 또한 실행된다. 또한, 어드레스 12를 갖는 레지스터에 기억된 데이터 z는 가변이고 네트워크로부터의 데이터에 대한 호스트 프로세서의 분석에 따라 호스트 프로세서에 의하여 구성될 수 있다. 상기 프로세스를 반복하기 위하여, 절대 점프 명령은 메모리 위치 제로로 점프를 실행하여 다시 프로세스를 효과적으로 실행하도록 나타내는 데이터 필드로 실행된다. 따라서, 상기 예의 일련의 인스트럭션은 제1 및 제2 센서와 같은 네트워크 장치(N1, N2)에 의하여 제공된 데이터를 주기적으로 판독하고, 제3 및 제4 액추에이터와 같은 네트워크 장치(N3, N4)에 데이터를 주기적으로 기입한다.
도 6을 참조하면, 레지스터로부터 절대 점프 명령이 예시되어 있다. 상기 명령으로 인하여 호스트 컨트롤러가 메인 프로그램 루프로부터 다른 세트의 코드를 실행할 수 있는 다른 프로그램 루프로 분기시킬 수 있다. 구체적으로, 예시된 바와 같이, 호스트 프로세서는 레지스터로부터 절대 점프 명령에 대한 어드레스를 공급한다. 예시된 바와 같이, 제2 프로세스에 대한 코드의 어드레스(어드레스 a)는 버스 컨트롤러가 호스트 프로세서에 의하여 실행된 프로세스 분석에 따라 제2 세트의 명령으로 변환시키도록 어드레스 1을 갖는 레지스터에 기억될 수 있다. 이 점에 있어서, 도 5 및 도 6은 추가적인 마이크로코드 용도에 대한 단지 예시적인 실시예라는 점을 이해해야 한다. 마이크로코드는 네트워크 시스템에 여러 가지 용도로 사용할 수 있다.
본 발명은 전술한 설명 및 관련 도면에 개시된 지침의 장점을 갖는 여러 가지 다른 실시예로 변형될 수 있다는 점을 당업자는 이해할 수 있을 것이다. 따라서, 본 발명은 개시된 특정 실시예에만 한정되는 것은 아니며, 변형예 및 다른 실시예도 특허청구범위 내에 포함된다는 점을 이해할 수 있을 것이다. 본 명세서에는 특정 용어가 사용되었지만, 이들 용어는 일반적 용어로서 단지 설명을 목적으로 사용된 것이며 한정되는 것은 아니다.

Claims (25)

  1. 네트워크 버스를 통해 하나 이상의 네트워크 장치와 통신하는 시스템에 있어서,
    호스트 컴퓨터,
    하나 이상의 네트워크 장치,
    네트워크 버스, 및
    상기 하나 이상의 네트워크 장치에 인스트럭션을 송신하도록 상기 네트워크 버스 및 상기 호스트 컴퓨터 양자 모두와 전기적 통신 상태로 배치된 버스 컨트롤러
    를 포함하고,
    상기 호스트 컴퓨터 및 네트워크 장치 양자 모두는 상기 네트워크 버스와 전기적으로 통신되며,
    상기 버스 컨트롤러는 일련의 인스트럭션(a series of instructions)을 기억하는 메모리 장치를 포함하고,
    상기 일련의 인스트럭션은 상기 하나 이상의 네트워크 장치에 의하여 실행될 하나 이상의 명령을 포함하며,
    상기 버스 컨트롤러는 상기 네트워크 버스를 통해 상기 하나 이상의 네트워크 장치와 행해지는 통신을 제어하도록 상기 호스트 컴퓨터의 동작과 별개의 방식으로 상기 메모리 장치 내에 기억된 인스트럭션 중 하나 이상을 실행하도록 구성되고,
    상기 버스 컨트롤러가 상기 하나 이상의 인스트럭션을 상기 네트워크 장치에 송신하고, 상기 네트워크 장치가 상기 호스트 컴퓨터의 동작과 상기 네트워크 버스 및 다른 네트워크 장치와 별개로 상기 인스트럭션 내에 위치된 명령을 실행하는,
    시스템.
  2. 제1항에 있어서,
    상기 호스트 컴퓨터는 상기 버스 컨트롤러에 명령 스케줄(command schedule)이 프리로딩(preloading)되도록 상기 일련의 인스트럭션을 상기 버스 컨트롤러의 상기 메모리 장치에 전달할 수 있는, 시스템.
  3. 제2항에 있어서,
    상기 버스 컨트롤러의 상기 메모리 장치는 비휘발성 메모리 장치를 포함하고,
    상기 호스트 컴퓨터는 상기 버스 컨트롤러에 의하여 상기 일련의 인스트럭션이 실행되기 전에 상기 일련의 인스트럭션을 상기 비휘발성 메모리 장치내에 프리로딩할 수 있는,
    시스템.
  4. 제2항에 있어서,
    상기 버스 컨트롤러의 상기 메모리 장치는 휘발성 메모리 장치를 포함하고,
    상기 호스트 컴퓨터는 상기 버스 컨트롤러에 의하여 상기 일련의 인스트럭션이 실행되기 전에 상기 일련의 인스트럭션을 상기 휘발성 메모리 장치 내에 프리로딩할 수 있는,
    시스템.
  5. 제1항에 있어서,
    상기 버스 컨트롤러는 상기 일련의 인스트럭션을 시간에 따른 결정 방식(time-deterministic method)으로 반복해서 실행하도록 구성된, 시스템.
  6. 제1항에 있어서,
    상기 호스트 컴퓨터는 상기 버스 컨트롤러가 상기 명령 스케줄을 실행하여 상기 하나 이상의 네트워크 장치와 행해지는 통신을 제어하도록 일련의 인스트럭션을 포함하는 상기 명령 스케줄을 상기 버스 컨트롤러에 프리로딩할 수 있고,
    상기 일련의 인스트럭션 중 하나 이상은 연관된 가변 데이터 필드를 가지며,
    상기 호스트 컴퓨터는 상기 하나 이상의 인스트럭션의 가변 데이터 필드를 변경시킴으로써 상기 버스 컨트롤러와 상기 네트워크 버스 상의 상기 하나 이상의 네트워크 장치 사이의 통신을 변경시킬 수 있는,
    시스템.
  7. 제1항에 있어서,
    상기 버스 컨트롤러는 일련의 인스트럭션을 기억하는 메모리 장치를 포함하고,
    상기 버스 컨트롤러는 상기 네트워크 버스를 통해 상기 하나 이상의 네트워크 장치와 행해지는 통신을 제어하도록 상기 일련의 인스트럭션을 실행하도록 구성되며,
    하나 이상의 인스트럭션은 가변 데이터와 연관된 하나 이상의 가변 데이터 필드를 갖고,
    상기 호스트 컴퓨터는 상기 하나 이상의 인스트럭션의 상기 하나 이상의 가변 데이터 필드와 연관된 가변 데이터를 변경시킴으로써 상기 버스 컨트롤러에 의하여 실행된 각각의 상기 하나 이상의 인스트럭션을 변경시킬 수 있는
    시스템.
  8. 제7항에 있어서,
    상기 호스트 컴퓨터는 상기 네트워크 버스를 통해 수행된 통신에 기초하여 상기 하나 이상의 인스트럭션의 상기 하나 이상의 가변 데이터 필드와 연관된 상기 가변 데이터를 변경시킬 수 있는
    시스템.
  9. 제7항에 있어서,
    상기 버스 컨트롤러의 상기 메모리 장치는 상기 가변 데이터를 하나 이상의 미리 정해진 어드레스에 기억할 수 있고,
    상기 가변 데이터와 연관된 상기 하나 이상의 가변 데이터 필드는 상기 연관된 가변 데이터의 상기 하나 이상의 미리 정해진 어드레스를 식별할 수 있어서, 상기 버스 컨트롤러가 상기 하나 이상의 가변 데이터 필드를 포함하는 상기 하나 이상의 인스트럭션을 실행할 때, 상기 버스 컨트롤러가 각각의 상기 하나 이상의 가변 데이터 필드에 의하여 식별된 상기 하나 이상의 미리 정해진 어드레스에서 상기 메모리 장치로부터 상기 가변 데이터를 검색하는
    시스템.
  10. 제9항에 있어서,
    상기 버스 컨트롤러의 상기 메모리 장치는 상기 하나 이상의 미리 정해진 어드레스를 포함하는 하나 이상의 레지스터를 포함하고,
    상기 하나 이상의 레지스터는 상기 가변 데이터를 상기 하나 이상의 미리 정해진 어드레스에 기억할 수 있는
    시스템.
  11. 호스트 컴퓨터의 동작과 별개로 네트워크 버스를 통해 네트워크 장치의 동작을 제어하는 방법에 있어서,
    버스 컨트롤러에 명령 스케줄이 프리로딩되도록 호스트 컴퓨터로부터 버스 컨트롤러에 일련의 인스트럭션을 전달하는 단계, 및
    상기 네트워크 버스를 통해 상기 버스 컨트롤러와 하나 이상의 네트워크 장치 사이에 행해지는 통신을 제어하도록 상기 호스트 컴퓨터의 동작과 별개의 방식으로 상기 인스트럭션 중 하나 이상을 실행하는 단계,
    를 포함하고,
    상기 인스트럭션은 상기 하나 이상의 네트워크 장치에 의하여 실행될 하나 이상의 명령을 포함하며,
    상기 인스트럭션 실행 단계는 상기 하나 이상의 인스트럭션을 상기 네트워크 장치에 전송하며, 상기 네트워크 장치는 상기 호스트 컴퓨터의 동작과 상기 네트워크 버스 및 다른 네트워크 장치와 별개로 상기 인스트럭션 내에 위치된 명령을 실행함으로써 상기 버스 컨트롤러에 의하여 상기 하나 이상의 인스트럭션이 실행되는 동시에 상기 호스트 컴퓨터가 동작을 실행할 수 있는
    제어 방법.
  12. 제11항에 있어서,
    상기 일련의 인스트럭션을 전달하는 단계는 상기 일련의 인스트럭션을 상기 버스 컨트롤러의 비휘발성 메모리 장치에 전달하는 단계를 포함하고,
    상기 일련의 인스트럭션이 전달된 후 상기 일련의 인스트럭션이 실행되는
    방법.
  13. 제11항에 있어서,
    상기 일련의 인스트럭션을 전달하는 단계는 상기 일련의 인스트럭션을 상기 버스 컨트롤러의 휘발성 메모리 장치에 전달하는 단계를 포함하는 방법.
  14. 제11항에 있어서,
    상기 일련의 인스트럭션을 실행하는 단계는 상기 일련의 인스트럭션을 시간에 따른 결정 방식으로 반복해서 실행하는 단계를 포함하는 방법.
  15. 제11항에 있어서,
    상기 실행 단계는 상기 네트워크 버스를 통해 버스 컨트롤러와 복수의 네트워크 장치 사이에 행해지는 통신을 제어하는 방식으로 일련의 인스트럭션을 실행하고,
    하나 이상의 인스트럭션은 가변 데이터와 연관된 하나 이상의 가변 데이터 필드를 가지며,
    상기 통신 방법은 상기 하나 이상의 인스트럭션의 상기 하나 이상의 가변 데이터 필드와 연관된 상기 가변 데이터를 변경시킴으로써 각각의 상기 인스트럭션의 실행을 변경시키는 단계를 더 포함하는
    방법.
  16. 제15항에 있어서,
    상기 변경시키는 단계는, 상기 일련의 인스트럭션이 실행됨에 따라 상기 네트워크 버스를 통해 수행된 통신에 기초하여 상기 하나 이상의 인스트럭션의 상기 하나 이상의 가변 데이터 필드와 연관된 상기 가변 데이터를 변경시키는 단계를 포함하는
    방법.
  17. 제15항에 있어서,
    상기 가변 데이터는 하나 이상의 미리 정해진 어드레스에 기억될 수 있고,
    상기 하나 이상의 인스트럭션의 상기 하나 이상의 가변 데이터 필드는 상기 연관된 가변 데이터의 상기 하나 이상의 미리 정해진 어드레스를 식별할 수 있으며,
    상기 일련의 인스트럭션을 실행하는 단계는 상기 하나 이상의 가변 데이터 필드를 포함하는 하나 이상의 인스트럭션을 실행하고, 상기 각각의 하나 이상의 인스트럭션의 상기 하나 이상의 가변 데이터 필드에 의하여 식별된 상기 하나 이상의 미리 정해진 어드레스에 따라 상기 가변 데이터를 검색하는 단계를 포함하는
    방법.
  18. 호스트 컴퓨터의 동작과 별개로 네트워크 버스를 통해 네트워크 장치의 동작을 제어하는 버스 컨트롤러에 있어서,
    상기 네트워크 버스에 인스트럭션을 전송할 수 있는 송신기,
    상기 네트워크 버스로부터 데이터를 수신할 수 있는 수신기, 및
    일련의 인스트럭션을 기억할 수 있는 메모리 장치
    를 포함하고,
    상기 인스트럭션은 상기 네트워크 장치에 의하여 실행될 하나 이상의 명령을 포함하며,
    상기 버스 컨트롤러는 상기 네트워크 장치가 상기 호스트 컴퓨터의 동작과 상기 네트워크 버스 및 다른 네트워크 장치와 별개로 상기 인스트럭션 내의 명령을 실행하도록 호스트 컴퓨터와 별개의 방식으로 상기 메모리 장치 내의 인스트럭션 중 하나 이상을 상기 네트워크 버스를 통해 상기 네트워크 장치에 송신하도록 구성된
    버스 컨트롤러.
  19. 제18항에 있어서,
    상기 메모리 장치는 상기 버스 컨트롤러가 명령 스케줄로 프리로딩되도록 상기 호스트 컴퓨터로부터 상기 일련의 인스트럭션을 수신할 수 있는 버스 컨트롤러.
  20. 제19항에 있어서,
    상기 메모리 장치는 비휘발성 메모리 장치를 포함하고,
    상기 메모리 장치는 상기 버스 컨트롤러에 의하여 상기 일련의 인스트럭션이 실행되기 전에 상기 일련의 인스트럭션을 수신할 수 있는 버스 컨트롤러.
  21. 제19항에 있어서,
    상기 메모리 장치는 휘발성 메모리 장치를 포함하고,
    상기 메모리 장치는 상기 버스 컨트롤러에 의하여 상기 일련의 인스트럭션이 실행되기 전에 상기 일련의 인스트럭션을 수신할 수 있는 버스 컨트롤러.
  22. 제18항에 있어서,
    상기 버스 컨트롤러는 상기 네트워크 버스를 통해 상기 하나 이상의 네트워크 장치와 행해지는 통신을 제어하도록 상기 일련의 인스트럭션을 반복해서 실행하도록 구성된 버스 컨트롤러.
  23. 제18항에 있어서,
    상기 메모리 장치는 가변 데이터와 연관된 하나 이상의 가변 데이터 필드를 갖는 상기 일련의 인스트럭션 중 하나 이상의 인스트럭션을 기억하고,
    상기 가변 데이터는 상기 호스트 컴퓨터에 의하여 변경됨으로써 상기 버스 컨트롤러에 의하여 실행된 각각의 상기 하나 이상의 인스트럭션을 변경시킬 수 있는
    버스 컨트롤러.
  24. 제23항에 있어서,
    상기 메모리 장치는 상기 가변 데이터를 하나 이상의 미리 정해진 어드레스에 기억할 수 있고,
    상기 가변 데이터와 연관된 상기 하나 이상의 가변 데이터 필드는, 상기 버스 컨트롤러가 상기 하나 이상의 가변 데이터 필드를 포함하는 상기 하나 이상의 인스트럭션을 실행할 때, 상기 버스 컨트롤러가 상기 각각의 하나 이상의 가변 데이터 필드에 의하여 식별된 상기 하나 이상의 미리 정해진 어드레스에서 상기 메모리 장치로부터 상기 가변 데이터를 검색할 수 있도록 상기 연관된 가변 데이터의 상기 하나 이상의 미리 정해진 어드레스를 식별할 수 있는
    버스 컨트롤러.
  25. 제24항에 있어서,
    상기 메모리 장치는 상기 하나 이상의 미리 정해진 어드레스를 포함하는 하나 이상의 레지스터를 포함하고,
    상기 하나 이상의 레지스터는 상기 가변 데이터를 상기 하나 이상의 미리 정해진 어드레스에 기억할 수 있는
    버스 컨트롤러.
KR1020037013973A 2001-04-26 2002-04-26 버스 컨트롤러에 명령 스케줄을 프리로딩하는 시스템 및 방법 KR100656977B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US28664701P 2001-04-26 2001-04-26
US28664801P 2001-04-26 2001-04-26
US60/286,647 2001-04-26
US60/286,648 2001-04-26
PCT/US2002/013190 WO2002088965A1 (en) 2001-04-26 2002-04-26 System and method for preloading a bus controller with command schedule

Publications (2)

Publication Number Publication Date
KR20040015153A KR20040015153A (ko) 2004-02-18
KR100656977B1 true KR100656977B1 (ko) 2006-12-13

Family

ID=26963977

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020037013973A KR100656977B1 (ko) 2001-04-26 2002-04-26 버스 컨트롤러에 명령 스케줄을 프리로딩하는 시스템 및 방법

Country Status (6)

Country Link
US (1) US7617330B2 (ko)
EP (1) EP1390856B2 (ko)
JP (1) JP4236936B2 (ko)
KR (1) KR100656977B1 (ko)
DE (1) DE60220669T3 (ko)
WO (1) WO2002088965A1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100522388B1 (ko) * 2001-04-26 2005-10-18 더 보잉 캄파니 네트워크 버스에 의해 이벤트 트리거를 생성하기 위한시스템, 방법, 및 제어기
CN1320420C (zh) * 2001-11-07 2007-06-06 维特赛半导体公司 用于多个元件之间通信的系统和方法以及用于配置和测试该系统的方法
DE102007051657A1 (de) * 2007-10-26 2009-04-30 Robert Bosch Gmbh Kommunikationssystem mit einem CAN-Bus und Verfahren zum Betreiben eines solchen Kommunikationssystems
JP6054927B2 (ja) * 2014-09-22 2016-12-27 ファナック株式会社 複数の通信回線を利用するdnc運転機能を備えた数値制御装置

Family Cites Families (65)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4123794A (en) * 1974-02-15 1978-10-31 Tokyo Shibaura Electric Co., Limited Multi-computer system
DE2615306C2 (de) * 1976-04-08 1982-06-03 Vereinigte Flugtechnische Werke Gmbh, 2800 Bremen Meßdatenerfassungs- und Verarbeitungsanlage
US4371932A (en) * 1979-07-30 1983-02-01 International Business Machines Corp. I/O Controller for transferring data between a host processor and multiple I/O units
US4304001A (en) * 1980-01-24 1981-12-01 Forney Engineering Company Industrial control system with interconnected remotely located computer control units
US4385350A (en) * 1980-07-16 1983-05-24 Ford Aerospace & Communications Corporation Multiprocessor system having distributed priority resolution circuitry
US4494192A (en) * 1982-07-21 1985-01-15 Sperry Corporation High speed bus architecture
US4688168A (en) * 1984-08-23 1987-08-18 Picker International Inc. High speed data transfer method and apparatus
EP0244480A1 (en) 1985-10-24 1987-11-11 Culler Scientific Systems Corporation Integrated, multicomputer data processing system
DE3730468A1 (de) * 1987-09-08 1989-03-16 Bergmann Kabelwerke Ag Bordnetz fuer kraftfahrzeuge und verfahren zum betrieb des bordnetzes
US4969147A (en) * 1987-11-10 1990-11-06 Echelon Systems Corporation Network and intelligent cell for providing sensing, bidirectional communications and control
JP2591782B2 (ja) 1988-03-30 1997-03-19 日本電気株式会社 補助記憶装置に対する入出力の負荷分散制御方式
US4996684A (en) * 1989-07-06 1991-02-26 Northern Telecom Limited Electronic systems and effective reduction of electromagnetic interference energy propagation from electronic systems
JPH03171245A (ja) 1989-11-30 1991-07-24 Oki Electric Ind Co Ltd Dma制御方式
DE69108900D1 (de) * 1990-01-30 1995-05-18 Johnson Service Co Vernetztes betriebsmittelverwaltungssystem.
JPH03269752A (ja) 1990-03-20 1991-12-02 Nec Corp 情報処理システム及びそれに使用される入出力制御装置
GB9006661D0 (en) 1990-03-24 1990-05-23 Reflex Manufacturing Systems L Network-field interface for manufacturing systems
US5138709A (en) * 1990-04-11 1992-08-11 Motorola, Inc. Spurious interrupt monitor
US5367678A (en) * 1990-12-06 1994-11-22 The Regents Of The University Of California Multiprocessor system having statically determining resource allocation schedule at compile time and the using of static schedule with processor signals to control the execution time dynamically
US5303350A (en) * 1990-12-20 1994-04-12 Acer Incorporated Circuit for initializing registers using two input signals for writing default value into D-latch after a reset operation
US5274783A (en) * 1991-06-28 1993-12-28 Digital Equipment Corporation SCSI interface employing bus extender and auxiliary bus
US5223806A (en) * 1991-08-23 1993-06-29 Digital Equipment Corporation Method and apparatus for reducing electromagnetic interference and emission associated with computer network interfaces
US5251208A (en) * 1991-12-19 1993-10-05 At&T Bell Laboratories Digital signal processor synchronous network
JP3383319B2 (ja) 1991-12-27 2003-03-04 本田技研工業株式会社 燃料電池
WO1994003852A1 (en) 1992-08-05 1994-02-17 David Sarnoff Research Center, Inc. Advanced massively-parallel computer apparatus
JPH0675898A (ja) 1992-08-24 1994-03-18 Nec Corp ダイレクトメモリアクセスコントローラ
WO1994008298A2 (en) * 1992-10-02 1994-04-14 Compaq Computer Corp Method for improving scsi operations by actively patching scsi processor instructions
US5437060A (en) * 1993-06-01 1995-07-25 Itronix Corporation Apparatus and method for reducing interference in a communications system
US5445128A (en) * 1993-08-27 1995-08-29 Detroit Diesel Corporation Method for engine control
DE4408488A1 (de) 1994-03-14 1995-09-21 Bosch Gmbh Robert Verfahren zur zyklischen Übertragung von Daten zwischen mindestens zwei verteilt arbeitenden Steuergeräten
JP2773639B2 (ja) 1994-03-15 1998-07-09 日本電気株式会社 プリンタ負荷分散方式
US5652839A (en) * 1994-03-29 1997-07-29 The United States Of America As Represented By The Secretary Of The Navy Method of non-intrusively sensing status in a computer peripheral
WO1996013776A1 (en) * 1994-10-31 1996-05-09 Intel Corporation M & a for exchanging data, status, and commands over a hierarchical serial bus assembly using communication packets
US5742847A (en) * 1994-10-31 1998-04-21 Intel Corporation M&A for dynamically generating and maintaining frame based polling schedules for polling isochronous and asynchronous functions that guaranty latencies and bandwidths to the isochronous functions
US5623610A (en) * 1994-10-31 1997-04-22 Intel Corporation System for assigning geographical addresses in a hierarchical serial bus by enabling upstream port and selectively enabling disabled ports at power on/reset
US5615404A (en) 1994-10-31 1997-03-25 Intel Corporation System having independently addressable bus interfaces coupled to serially connected multi-ported signal distributors generating and maintaining frame based polling schedule favoring isochronous peripherals
EP0716370A3 (en) * 1994-12-06 2005-02-16 International Business Machines Corporation A disk access method for delivering multimedia and video information on demand over wide area networks
US5737356A (en) * 1995-03-31 1998-04-07 General Electric Company Spectral spreading apparatus for reducing electromagnetic radiation from a transmission line used for high data rate communication in a computerized tomography system
US5616404A (en) * 1995-10-10 1997-04-01 Eastman Chemical Company Orientable, heat setable semi-crystalline copolyesters
US5809224A (en) * 1995-10-13 1998-09-15 Compaq Computer Corporation On-line disk array reconfiguration
US5828857A (en) * 1996-01-05 1998-10-27 Apple Computer, Inc. ASIC cell implementation of a bus controller with programmable timing value registers for the apple desktop bus
JP3647955B2 (ja) * 1996-01-23 2005-05-18 三菱電機株式会社 操作ボード、リモートi/o通信制御方法
JPH09251437A (ja) 1996-03-18 1997-09-22 Toshiba Corp 計算機装置及び連続データサーバ装置
US5867736A (en) * 1996-03-29 1999-02-02 Lsi Logic Corporation Methods for simplified integration of host based storage array control functions using read and write operations on a storage array control port
US5960212A (en) * 1996-04-03 1999-09-28 Telefonaktiebolaget Lm Ericsson (Publ) Universal input/output controller having a unique coprocessor architecture
US5815516A (en) * 1996-04-05 1998-09-29 International Business Machines Corporation Method and apparatus for producing transmission control protocol checksums using internet protocol fragmentation
US5801602A (en) * 1996-04-30 1998-09-01 3Com Corporation Isolation and signal filter transformer
WO1998035296A1 (fr) 1997-02-07 1998-08-13 Mitsubishi Denki Kabushiki Kaisha Controleur de bus et systeme de controle de bus
US6076115A (en) * 1997-02-11 2000-06-13 Xaqti Corporation Media access control receiver and network management system
US6013108A (en) * 1997-03-18 2000-01-11 Endevco Corporation Intelligent sensor system with network bus
US5933611A (en) * 1997-06-23 1999-08-03 Opti Inc. Dynamic scheduler for time multiplexed serial bus
JPH1169157A (ja) * 1997-08-20 1999-03-09 Ricoh Co Ltd 画像形成装置
US6452938B1 (en) * 1998-02-26 2002-09-17 3Com Corporation System and method to reduce electromagnetic interference emissions in a network interface
US6167465A (en) * 1998-05-20 2000-12-26 Aureal Semiconductor, Inc. System for managing multiple DMA connections between a peripheral device and a memory and performing real-time operations on data carried by a selected DMA connection
US6185607B1 (en) * 1998-05-26 2001-02-06 3Com Corporation Method for managing network data transfers with minimal host processor involvement
US6201996B1 (en) 1998-05-29 2001-03-13 Control Technology Corporationa Object-oriented programmable industrial controller with distributed interface architecture
KR20010071560A (ko) * 1998-06-22 2001-07-28 콜린 콘스터블 가상 데이터 기억 시스템
US6199121B1 (en) * 1998-08-07 2001-03-06 Oak Technology, Inc. High speed dynamic chaining of DMA operations without suspending a DMA controller or incurring race conditions
US6195724B1 (en) * 1998-11-16 2001-02-27 Infineon Technologies Ag Methods and apparatus for prioritization of access to external devices
US6356809B1 (en) * 1999-06-11 2002-03-12 Cbi Systems Corporation Electro-statically shielded processing module
JP3737650B2 (ja) * 1999-07-09 2006-01-18 株式会社東芝 統合コントローラ及び制御システム
US6273771B1 (en) * 2000-03-17 2001-08-14 Brunswick Corporation Control system for a marine vessel
US6681346B2 (en) * 2000-05-11 2004-01-20 Goodrich Corporation Digital processing system including a DMA controller operating in the virtual address domain and a method for operating the same
US6646564B1 (en) * 2001-03-07 2003-11-11 L'air Liquide Societe Anonyme A Directoire Et Conseil De Surveillance Pour L'etude Et L'exploitation Des Procedes Georges Claude System and method for remote management of equipment operating parameters
US20030212859A1 (en) * 2002-05-08 2003-11-13 Ellis Robert W. Arrayed data storage architecture with simultaneous command of multiple storage media
US6834212B1 (en) * 2002-07-03 2004-12-21 Blue Control Technologies, Inc. Method and apparatus for APC solver engine and heuristic

Also Published As

Publication number Publication date
DE60220669D1 (de) 2007-07-26
US20040158616A1 (en) 2004-08-12
US7617330B2 (en) 2009-11-10
DE60220669T2 (de) 2008-02-14
JP2005500593A (ja) 2005-01-06
KR20040015153A (ko) 2004-02-18
WO2002088965A1 (en) 2002-11-07
EP1390856A1 (en) 2004-02-25
EP1390856B2 (en) 2020-07-22
DE60220669T3 (de) 2020-11-19
EP1390856B1 (en) 2007-06-13
JP4236936B2 (ja) 2009-03-11
EP1390856A4 (en) 2005-11-16

Similar Documents

Publication Publication Date Title
CN103946830B (zh) 传感器传输设备和用于从多个传感器向车辆的总线控制设备传输有用数据的方法
KR101065105B1 (ko) 공통 버스를 통해 통신하는 네트워크 장치 사이에서탁월하게 구성할 수 있는 동등계층 통신을 위한 시스템,네트워크 장치 및 방법
CN101493805B (zh) 可伸缩总线结构
US20040133721A1 (en) Systems and methods for assigning an address to a network device added to an existing network
US9298523B2 (en) Method and system for time synchronization among systems using parallel sysplex links
EP1679610B1 (en) System and methods for establishing peer-to-peer communications between network devices communicating via a common bus
CN107947906B (zh) 从属设备
KR100656977B1 (ko) 버스 컨트롤러에 명령 스케줄을 프리로딩하는 시스템 및 방법
US7421527B2 (en) Transmission apparatus and transmission method
KR101202738B1 (ko) 멀티 채널 데이터 전송 장치
JP3795016B2 (ja) ネットワークバス上に事象トリガを作るシステム、方法及びバスコントローラ
US20030187652A1 (en) Content recognition system for indexing occurrences of objects within an audio/video data stream to generate an index database corresponding to the content data stream
EP1390855B1 (en) Systems and methods for assigning an address to a network device added to an existing network
CN110780189B (zh) 一种基于fpga的sdio接口测试设备与方法
US6850826B1 (en) Vehicle network system and a method of controlling states of vehicle apparatuses
CN114546928B (zh) 核心簇同步的方法、控制方法及设备、核心、介质
JP3062904B2 (ja) 分散型計算機システムのデータ伝送方式
JPH11122275A (ja) シリアル通信システム
US6510482B1 (en) Multiplexed bus data transmission control system
CN115129623A (zh) 功耗控制方法、装置、板卡、电子设备及存储介质
JP2000293454A (ja) データ通信装置、データ通信方法、および記録媒体
JP2002218570A (ja) 操作監視システム
KR20050045195A (ko) 직렬 버스 제어 장치 및 방법
JPH11243408A (ja) 電子回路システム
JP2002189696A (ja) 異なるタイプの装置間において高速でデータを転送するための方法および装置

Legal Events

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

Payment date: 20121126

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20131122

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20141121

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20151123

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20161124

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20171127

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20181123

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20191127

Year of fee payment: 14