KR101470162B1 - 메모리 스택 사이즈 모니터링 방법 - Google Patents

메모리 스택 사이즈 모니터링 방법 Download PDF

Info

Publication number
KR101470162B1
KR101470162B1 KR20130061449A KR20130061449A KR101470162B1 KR 101470162 B1 KR101470162 B1 KR 101470162B1 KR 20130061449 A KR20130061449 A KR 20130061449A KR 20130061449 A KR20130061449 A KR 20130061449A KR 101470162 B1 KR101470162 B1 KR 101470162B1
Authority
KR
South Korea
Prior art keywords
block
stack
size
pointer
memory
Prior art date
Application number
KR20130061449A
Other languages
English (en)
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 KR20130061449A priority Critical patent/KR101470162B1/ko
Priority to US14/088,873 priority patent/US9128630B2/en
Application granted granted Critical
Publication of KR101470162B1 publication Critical patent/KR101470162B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W10/00Conjoint control of vehicle sub-units of different type or different function
    • B60W10/04Conjoint control of vehicle sub-units of different type or different function including control of propulsion units
    • B60W10/06Conjoint control of vehicle sub-units of different type or different function including control of propulsion units including control of combustion engines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Chemical & Material Sciences (AREA)
  • Combustion & Propulsion (AREA)
  • Computer Hardware Design (AREA)
  • Transportation (AREA)
  • Mechanical Engineering (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)

Abstract

본 발명은 메모리 스택 사이즈 모니터링 방법에 관한 것으로서, 더욱 상세하게는 하이브리드 차량용 제어기의 운영체계에 적용되는 메모리 스택의 사이즈를 모니터링하여, 메모리 스택의 오버플로우 현상을 방지할 수 있도록 한 메모리 스택 사이즈 모니터링 방법에 관한 것이다.
즉, 하이브리드 차량의 제어시스템에서 메모리 스택을 정확히 얼마나 사용하는지 최대한 효율적이고 빠르게 모니터링하여, 스택 오버플로우의 위험수준 도달시 페일-세이프 로직으로 진입하도록 함으로써, 메모리 스택의 오버플로우 현상을 용이하게 방지할 수 있도록 한 메모리 스택 사이즈 모니터링 방법을 제공하는데 그 목적이 있다.

Description

메모리 스택 사이즈 모니터링 방법{Method for monitoring memory stack size}
본 발명은 메모리 스택 사이즈 모니터링 방법에 관한 것으로서, 더욱 상세하게는 하이브리드 차량용 제어기의 운영체계에 적용되는 메모리 스택의 사이즈를 모니터링하여, 메모리 스택의 오버플로우 현상을 방지할 수 있도록 한 메모리 스택 사이즈 모니터링 방법에 관한 것이다.
마이크로 프로세서가 내장된 임베디드 시스템은 특정한 기능을 수행하기 위한 하드웨어와 소프트웨어를 포함하는 응용시스템을 말하며, 이러한 임베디드 시스템은 자동차의 전장품 제어, 로봇제어, 공정제어 등과 같은 분야에서 활용되고 있다.
특히, 하이브리드 차량을 위한 제어 시스템의 경우, 엔진 이외에 모터의 구동력을 이용하여 주행하기 때문에 모터 및 인버터 등을 제어하는 모터제어기와, 차량의 각종 전장품에 대한 전반적인 제어를 하는 상위제어기(HCU) 등과 같이 다양한 제어기들이 포함되어 있으므로, 각 제어기의 실시간 운영체계가 문제없이 이루어져야 전반적인 차량의 주행 성능이 유지될 수 있다.
이러한 하이브리드 차량의 제어시스템을 운영하기 위한 실시간 운영체계(RTOS, Real Time Operating System)에는 스택 타입의 메모리 스택이 사용되고 있다.
통상, 메모리 스택은 임베디드 시스템의 자원들 중에서 가장 빈번하게 사용되는 자원들 중의 하나로서, 특정 태스크(task)가 자신에게 주어진 스택을 모두 사용하고, 자신에게 주어지지 않은 메모리 영역을 침범하여 자신의 정보를 저장하는 문제점이 발생하는데, 이를 스택 오버플로우라고 한다.
하이브리 차량의 제어시스템을 운영하는 실시간 운영체제 환경에서도 특정 시스템이 할당된 메모리 스택의 사이즈보다 더 큰 용량을 필요로 하여, 정의된 스택 영역 범위 밖의 주소에 엑세스할 경우, 메모리 스택의 오버플로우 현상이 발생한다.
이러한 메모리 스택의 오버플로우는 해당 시스템에 치명적인 영향을 끼치고, 특정 기능을 위한 타겟을 리셋시키며, 해당 제어기의 문제로 인해 하이브리드 차량의 전반적인 제어 및 성능에 심각한 문제를 야기시킬 수 있다.
보통, 메모리 스택의 오버플로우 현상이 발생되지 않도록 메모리 스택의 사용영역을 실제 사용하는 영역보다 과도하게 확보해 놓을 수 있으나, 메모리의 사용영역이 쓸모없이 과도하게 남기 때문에 매우 비효율적이고, 비용적인 측면에서 매우 불리한 단점이 있다.
본 발명은 상기와 같은 점을 감안하여 안출한 것으로서, 하이브리드 차량의 전체 제어시스템에서 메모리 스택을 정확히 얼마나 사용하는지 최대한 효율적이고 빠르게 모니터링함으로써, 스택 오버플로우의 위험수준 도달시 페일-세이프 로직으로 진입하도록 함으로써, 메모리 스택의 오버플로우 현상을 용이하게 방지할 수 있도록 한 메모리 스택 사이즈 모니터링 방법을 제공하는데 그 목적이 있다.
상기한 목적을 달성하기 위한 본 발명은: 메모리 스택의 모든 스택 영역을 초기화시키는 단계와; 상기 메모리 스택의 모든 스택 영역을 n개의 블록 단위로 분할하는 단계와; 상기 n개의 블록 중, 첫번째 블록부터 n번째 블록까지 스택 사용여부를 결정하기 위하여 각 블록의 스택영역 중 샘플링된 블록 샘플링 제1구간을 메모리 주소 위치를 지정하는 포인터 1 및 포인터 2를 이용하여 검사하는 단계와; 상기 첫번째 블록부터 마지막 n번째 블록의 블록 샘플링 제1구간에 대한 사용 흔적이 존재하면, 스택 오버플로우 현상이 발생될 수 있는 것으로 판정하여 페일 세이프 로직으로 진입하는 단계와; 상기 첫번째 블록부터 마지막 n-1번째 블록 중 어느 하나의 블록에 사용 흔적이 없으면 메모리 스택의 사이즈를 측정하는 단계; 를 포함하는 것을 특징으로 하는 메모리 스택 사이즈 모니터링 방법을 제공한다.
상기한 과제 해결 수단을 통하여, 본 발명은 다음과 같은 효과를 제공한다.
본 발명에 따르면 하이브리드 차량의 전체 제어시스템에서 메모리 스택을 정확히 얼마나 사용하는지 최대한 효율적이고 빠르게 모니터링하여, 오버플로우가 생기면서 페일 세이프 로직으로 진입할 때, 스택 사용량과 고장코드를 기록으로 남겨두어 정비소에서 원인 파악을 용이하게 실시할 수 있다.
특히, 메모리 스택 오버플로우 현상이 발생되어 페일 세이프 로직으로 진입하면, 제한적 태스크의 실행과 함께 차량 구동의 최소한의 기능만을 수행할 수 있도록 함으로써, 운전자가 차량을 몰고 정비소로 이동하여 오버플로우시 스택 사용량과 고장코드를 기반으로 제어기에 대한 정비를 받을 수 있다.
도 1은 본 발명에 따른 메모리 스택 사이즈 모니터링 방법을 나타낸 순서도,
도 2는 본 발명에 따른 메모리 스택 사이즈 모니터링을 위하여, 메모리 스택을 분할하여 스택 사이즈를 측정하는 실시예 도면.
이하, 본 발명의 바람직한 실시예를 첨부도면을 참조로 상세하게 설명하기로 한다.
첨부한 도 1은 본 발명에 따른 메모리 스택 사이즈 모니터링 방법을 나타낸 순서도이고, 도 2는 메모리 스택을 분할하여 스택 사이즈를 측정하는 실시예를 나타낸다.
전술한 바와 같이 하이브리드 차량을 위한 제어 시스템의 경우, 엔진 이외에 모터의 구동력을 이용하여 주행하기 때문에 모터 및 인버터 등을 제어하는 모터제어기와, 차량의 각종 전장품에 대한 전반적인 제어를 하는 상위제어기(HCU) 등과 같이 다양한 제어기들이 포함되어 있으므로, 각 제어기의 실시간 운영체계가 문제없이 이루어져야 전반적인 차량의 주행 성능이 유지될 수 있다.
이에, 본 발명의 메모리 스택 사이즈 모니터링 방법은 전술한 바와 같이 하이브리드 차량의 제어시스템을 운영하기 위한 실시간 운영체계(RTOS, Real Time Operating System)에 스택 타입의 메모리 스택이 사용되고 있는 상태에서, 실시간 운영체계를 위한 제어기 즉, 하이브리드 차량에 탑재되는 상기 상위제어기(HCU)를 통상의 진단용 프로그램을 갖는 컴퓨터에 연결시킨 상태에서 다음과 같이 진행된다.
먼저, 메모리 스택의 모든 스택 영역(메모리 공간)을 초기화시킨다(S101).
예를 들어, 상기 메모리 스택의 모든 스택 영역을 1회 초기화시키되, 각 스택영역의 초기값을 0×FFFFFFFF(F: 16진수)로 하여 초기화시킨다.
이때, 상기 메모리 스택의 모든 스택 영역을 초기화시키는 이유는 초기화 단계후의 스택 영역이 사용 구간(저장 영역)과 미사용 구간(미저장 영역)으로 명확하게 구분되어, 후술하는 일련의 스택 사이즈 모니터링 과정이 정확하게 이루어질 수 있도록 함에 있다.
또한, 상기 메모리 스택의 모든 스택 영역을 n개의 블록 단위로 분할한다(S102).
상기 스택 영역을 n개의 블록 단위로 분할하는 이유는 스택 사이즈 모니터링 과정을 블록 단위로 순차 진행하여, 효과적이면도 빠르게 스택 사이즈 모니터링이 이루어질 수 있도록 함에 있다.
이렇게 메모리 스택의 모든 스택이 n개의 블록 단위로 분할됨과 더불어 초기화된 상태에서, 메모리 스택의 사이즈(미저장된 잔여 메모리 공간)를 측정하는 과정이 진행된다.
바람직하게는, 메모리 스택의 정규 코드에 별도의 측정모듈을 연결하여, 메모리 스택을 사용하는 매 테스크(Task)마다 스택 사이즈를 측정할 수 있도록 한다.
여기서, 상기 메모리 스택의 사이즈를 측정하는 실시예를 첨부한 도 1 및 도 2를 참조로 보다 상세하게 살펴보면 다음과 같다.
볼록 샘플링 제1구간은 해당 블록의 데이타가 사용되었는지 파악하기 위하여 정해진 구간이고, 블록 샘플링 제2구간은 사용중인 스택영역의 끝의 위치를 보장하기 위한 구간이면서 마지막 데이터의 존재 위치를 파악하기 위한 구간이다.
포인터 1은 블록 샘플링 제1구간이 사용되었는지의 사용흔적 검사를 하고, 포인터 2는 블록 샘플링 제2구간이 사용되었는지의 사용흔적 검사를 하는 역할을 한다.
먼저, 상기 메모리 스택의 사이즈 측정을 위하여 n개의 각 블록 전체를 검사하지 않고, 각 블록의 스택영역 중 샘플링된 블록 샘플링 제1구간만을 검사한다(S104).
보다 상세하게는, 상기 메모리 스택의 사이즈 측정을 위하여 스택영역의 사용 여부를 판정하기 위한 검사 단계로서, n개의 블록 중 첫번째 블록부터 순차적으로 검사하되, 첫번째 블록 전체를 검사하지 않고, 첫번째 블록의 스택영역 중 샘플링된 블록 샘플링 제1구간(스택영역의 시작점에서 역방향으로 배열되는 일정 저장영역)을 우선 검사한다.
이를 위해, 메모리 주소 위치를 지정하는 포인터 1 및 포인터 2를 초기화하여, 첨부한 도 2에서 보는 바와 같이 포인터 1은 n개의 블록 중 첫번째 블록의 스택영역의 시작점(시작 주소)에 지정하고, 포인터 2는 첫번째 블록의 스택영역의 끝점(끝 주소)에 지정한다(S103).
연이어, 첫번째 블록의 스택영역의 시작점(시작 주소)에 지정된 포인터 1을 이용하여 첫번째 블록의 스택영역 중 샘플링된 블록 샘플링 제1구간을 검사한다.
좀 더 상세하게는, 상기 포인터 1이 첫번째 블록부터 마지막 n-1번째 블록 중 어느 하나의 블록에 액세스하여 블록 샘플링 제1구간에 대한 사용 흔적 여부를 검출하여(S107), 사용 흔적이 있으면 포인터 1 및 포인터 2를 그 다음의 블록으로 지정시킨다(S108).
예를 들어, 첨부한 도 2의 ①로 지시된 바와 같이 포인터 1이 첫번재 블록의 스택영역의 블록 샘플링 제1구간에 액세스하여, 블록 샘플링 제1구간에 사용 흔적(메모리 기록)이 있는 것으로 검출되면, 첨부한 도 2의 ②로 지시된 바와 같이 포인터 1은 두번째 블록의 스택영역의 시작점으로 이동하여 지정되고, 포인터 2도 두번째 블록의 스택영역의 끝점에 지정되며, 이는 스택에 높은 주소부터 낮은주소로 차례로 데이타가 쌓이는 특성 이용한 것이다.
만일, 상기 포인터 1이 첫번째 블록부터 마지막 n번째 블록까지 액세스하였는지를 판정하여(S105), 마지막 n번째의 스택영역의 블록 샘플링 제1구간에 대한 사용 흔적이 존재한다면, 스택 오버플로우 현상이 발생될 수 있는 것으로 판정하여 페일 세이프 로직으로 진입한다(S106).
좀 더 상세하게는, 상기 페일 세이프 로직으로 진입하면, 메모리 스택의 각 블록이 모두 사용 중인것으로 판단한 플래그 신호가 CPU로 전송되는 동시에 CPU에서 차량의 클러스터에 존재하는 경고등을 점등시키는 제어를 함으로써, 운전자는 메모리 스택의 오버플로우 현상이 발생될 수 있음을 용이하게 인지할 수 있다.
또한, 상기 페일 세이프 로직으로 진입하면, 상기 CPU는 제한적 태스크의 실행을 함으로써, 차량 구동의 최소한의 기능만을 수행될 수 있고, 이에 운전자가 차량을 몰고 정비소로 이동할 수 있다.
즉, 운전자가 인지한 메모리 스택의 오버플로우 현상은 해당 제어기에 치명적인 영향을 끼치고, 특정 기능을 위한 타겟을 리셋시키며, 해당 제어기의 문제로 인해 하이브리드 차량의 전반적인 제어 및 성능에 심각한 문제를 야기시킬 수 있으므로, 정비소 등에서 해당 제어기에 대한 정비를 받을 수 있도록 한다.
반면, 상기 페일 세이프 로직으로 진입하지 않는 경우, 메모리 스택의 사이즈를 측정하는 과정이 진행된다.
즉, 상기 포인터 1이 첫번째 블록부터 마지막 n-1번째 블록 중 어느 하나의 블록에 액세스하여 블록 샘플링 제1구간에 대한 사용 흔적 여부를 검출하여(S107), 사용 흔적이 없으면 메모리 스택의 사이즈를 측정하는 과정이 연속적으로 진행된다.
예를 들어, 첫번째 블록의 블록 샘플링 제1구간에 사용 흔적이 존재하면, 첨부한 도 2에서 ②로 지시된 바와 같이 포인터 1은 두번째 블록의 스택영역의 시작점으로 이동하여 지정되고, 포인터 2도 두번째 블록의 스택영역의 끝점에 지정된다.
이렇게 첫번째 블록부터 n번째 블록 중 블록 샘플링 제1구간 전체를 사용하지 않은 블록이 처음 검출되면, 그 블록에 마지막 데이타가 들어 있다고 추정하여 포인터 1을 역방향으로 이송시킨다(S109).
예를 들어, 첨부한 도 2에서 ③으로 지시된 바와 같이, 포인터 1이 역방향으로 이동하여 두번째 블록의 스택영역의 블록 샘플링 제1구간에 대한 검사를 실시한다.
이와 함께, 포인터 2에 의하여 블록 샘플링 제2구간(스택영역의 끝점에서 정방향으로 배열되는 일정 저장영역)에 대한 사용 흔적 검사가 이루어진다(S110).
예를 들어, 첨부한 도 2의 ④로 지시된 바와 같이 포인터 2에 의하여 해당 블록 즉, 두번째 블록의 블록 샘플링 제2구간에 대한 사용 여부를 검사하여(S111), 마지막 데이타(초기값: 0×FFFFFFFF)의 존재 위치가 검출되면, 두번째 블록의 블록 샘플링 제2구간에 마지막 데이타가 존재하는 것으로 판정한다.
이렇게 메모리 스택의 스택영역의 첫번째 블록부터 마지막 n-1번째 블록 중 어느 하나의 블록에 마지막 데이타가 존재하는 것으로 판정되면, 최종적인 스택사이즈 계산 단계가 진행된다(S112).
최종 스택사이즈 계산을 위하여, 포인터 2를 마지막 데이타 위치로 이송시킨 후, 첨부한 도 2의 ⑤로 지시된 바와 같이 마지막 데이타 위치로부터 정방향으로 이송시켜서 블록 샘플링 제2구간의 데이타 사용 흔적이 있는지 검출한다.
예를 들어, 첨부한 도 2에서 ③으로 지시된 바와 같이 상기 포인터 1이 역방향으로 이동하면서 두번째 블록의 스택영역의 블록 샘플링 제1구간에 대한 검사를 실시하여 데이타 사용 흔적이 있는지 검출하고, 이와 동시에 첨부한 도 2의 ⑤로 지시된 바와 같이 상기 포인터 2가 마지막 데이타 위치로부터 정방향으로 이송하면서 블록 샘플링 제2구간의 데이타 사용 흔적이 있는지를 검출한다.
따라서, 도 2의 ⑤번 동작까지 마치게 되면 포인터 2의 위치가 실제 사용되는 데이터 영역의 끝에서 블록 샘플링 제2구간 만큼의 사이즈가 더해진 곳에 위치하게 되고, 이때 상기 포인터 2의 주소에서 스택 전체 영역의 끝 주소 즉, 사용흔적 미검출영역인 스택 전체 영역의 끝 주소(예를 들어, 세번째 블록부터 n번째 블록의 끝 주소)를 뺀 값에 다시 두번째 블록의 스택영역의 블록 샘플링 제2구간을 빼줌으로써, 현재 사용중인 스택사이즈의 크기가 결정된다.
이렇게 현재 사용중인 스택사이즈만을 계산하여 오버플로우의 가능성을 모니터링할 수 있고, 물론 전체 스택사이즈에서 사용중인 스택사이즈를 빼는 간단한 방법으로 데이타 미사용영역(예를 들어 메모리 스택의 세번째 블록부터 n번째 블록까지는 데이타 미사용 영역)도 계산할 수 있다.
이와 같이, 스택사이즈 계산의 목적은 오버플로우 모니터링을 하는 중 오버플로우가 생기면서 페일 세이프 로직으로 진입할 때, 이때의 스택사용량과 고장코드를 기록으로 남겨두어 정비소에서 원인 파악을 용이하게 하기 위함에 있다.
한편, 상기와 같이 스택 오버플로우 방지를 위한 페일 세이프 로직으로 진입하지 않았다면, 이후에 스택 사이즈를 모니터링하는 경우, 상기한 단계 S101 내지 단계 S111 과정을 거치지 않은 채 최종 스택사이즈 계산 단계(S112)만을 진행하여 스택 사이즈를 검출할 수 있으며, 그에 따라 스택 사이즈 모니터링을 위한 주기적 검사가 가능하고, 모니터링 수행 시간을 대폭 감소시킬 수 있다.

Claims (7)

  1. 스택 타입의 메모리 스택을 갖는 상위제어기를 컴퓨터에 연결한 상태에서 이루어지는 메모리 스택 사이즈 모니터링 방법에 있어서,
    상기 메모리 스택의 모든 스택 영역을 초기화시키는 단계와;
    상기 메모리 스택의 모든 스택 영역을 n개의 블록 단위로 분할하는 단계와;
    상기 n개의 블록 중, 첫번째 블록부터 n번째 블록까지 스택 사용여부를 결정하기 위하여 각 블록의 스택영역 중 샘플링된 블록 샘플링 제1구간을 메모리 주소 위치를 지정하는 포인터 1 및 포인터 2를 이용하여 검사하는 단계와;
    상기 첫번째 블록부터 마지막 n번째 블록의 블록 샘플링 제1구간에 대한 사용 흔적이 존재하면, 스택 오버플로우 현상이 발생될 수 있는 것으로 판정하여 페일 세이프 로직으로 진입하는 단계와;
    상기 첫번째 블록부터 마지막 n-1번째 블록 중 어느 하나의 블록에 사용 흔적이 없으면 메모리 스택의 사이즈를 측정하는 단계;
    를 포함하고,
    상기 메모리 스택의 사이즈를 측정하는 단계는:
    첫번째 블록부터 n번째 블록 중 블록 샘플링 제1구간을 사용하지 않은 특정 블록을 검출하는 과정과;
    포인터 1이 역방향으로 이동하여 특정블록의 블록 샘플링 제1구간에 대한 데이타 사용흔적을 검출하는 과정과;
    포인터 2에 의하여 특정블록의 블록 샘플링 제2구간에 대한 데이타 사용 흔적 검사가 이루어져 마지막 데이타(초기값: 0×FFFFFFFF)의 존재 위치를 검출하는 과정과;
    포인터 2의 위치가 실제 사용되는 데이터 영역의 끝에서 블록 샘플링 제2구간 만큼의 사이즈가 더해진 곳에 위치될 때, 상기 포인터 2의 주소에서 스택 전체 영역의 끝 주소(사용흔적 미검출영역인 스택 전체 영역의 끝 주소)를 뺀 값에 다시 상기 블록 샘플링 제2구간을 빼줌으로써, 현재 사용중인 스택사이즈의 크기가 결정되는 과정;
    으로 이루어지는 것을 특징으로 하는 메모리 스택 사이즈 모니터링 방법.
  2. 청구항 1에 있어서,
    상기 모든 스택영역을 초기화시킬 때, 초기값을 0×FFFFFFFF(F: 16진수)로 하여 초기화시키는 것을 특징으로 하는 메모리 스택 사이즈 모니터링 방법.
  3. 청구항 1에 있어서,
    상기 메모리 스택의 사이즈 측정을 위하여 메모리 스택의 정규 코드에 별도의 측정모듈을 연결하여, 메모리 스택을 사용하는 매 테스크(Task)마다 스택 사이즈 측정이 이루어질 수 있도록 한 것을 특징으로 하는 메모리 스택 사이즈 모니터링 방법.
  4. 청구항 1에 있어서,
    상기 각 블록의 블록 샘플링 제1구간을 검사하기 위하여, 메모리 주소 위치를 지정하는 포인터 1 및 포인터 2를 초기화한 후, 포인터 1은 n개의 블록 중 첫번째 블록의 스택영역의 시작점(시작 주소)에 지정하고, 포인터 2는 첫번째 블록의 스택영역의 끝점(끝 주소)에 지정하는 것을 특징으로 하는 메모리 스택 사이즈 모니터링 방법.
  5. 청구항 1에 있어서,
    상기 첫번째 블록부터 n-1번째 블록 중 어느 하나의 블록에 액세스하여 블록 샘플링 제1구간에 대한 사용 흔적 여부가 존재하면, 포인터 1 및 포인터 2를 각각 그 다음의 블록의 시작점 및 끝점에 지정하는 것을 특징으로 하는 메모리 스택 사이즈 모니터링 방법.
  6. 청구항 1에 있어서,
    상기 페일 세이프 로직으로 진입하면, 메모리 스택의 각 블록이 모두 사용 중인 것으로 판단한 플래그 신호가 CPU로 전송되어, CPU에서 차량의 클러스터에 존재하는 경고등을 점등시키는 제어와 함께 제한적 태스크 실행을 하는 것을 특징으로 하는 메모리 스택 사이즈 모니터링 방법.
  7. 삭제
KR20130061449A 2013-05-30 2013-05-30 메모리 스택 사이즈 모니터링 방법 KR101470162B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR20130061449A KR101470162B1 (ko) 2013-05-30 2013-05-30 메모리 스택 사이즈 모니터링 방법
US14/088,873 US9128630B2 (en) 2013-05-30 2013-11-25 System and method for monitoring memory stack size

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR20130061449A KR101470162B1 (ko) 2013-05-30 2013-05-30 메모리 스택 사이즈 모니터링 방법

Publications (1)

Publication Number Publication Date
KR101470162B1 true KR101470162B1 (ko) 2014-12-05

Family

ID=51986518

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20130061449A KR101470162B1 (ko) 2013-05-30 2013-05-30 메모리 스택 사이즈 모니터링 방법

Country Status (2)

Country Link
US (1) US9128630B2 (ko)
KR (1) KR101470162B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190071208A (ko) 2017-12-14 2019-06-24 현대자동차주식회사 전자 제어 장치용 메모리 감시 및 사용 표시 방법 및 장치

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6771272B2 (ja) * 2015-07-01 2020-10-21 日立オートモティブシステムズ株式会社 車載電子制御装置及びスタック使用方法
FR3068149B1 (fr) * 2017-06-26 2019-11-22 Continental Automotive France Procede de surveillance de l’espace libre d’une pile memoire
US11289137B2 (en) * 2017-11-16 2022-03-29 Micron Technology, Inc. Multi-port storage-class memory interface
US10509599B2 (en) * 2018-03-15 2019-12-17 Micron Technology, Inc. Stack management in memory systems

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000187601A (ja) * 1998-12-21 2000-07-04 Nec Corp スタックサイズ設定装置
JP2003323353A (ja) * 2002-05-01 2003-11-14 Denso Corp メモリ診断装置及び制御装置
JP2008003915A (ja) * 2006-06-23 2008-01-10 Denso Corp 電子機器
KR20110036243A (ko) * 2009-10-01 2011-04-07 콘티넨탈 오토모티브 시스템 주식회사 실시간 스택 검사 시스템 및 그 방법

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7124251B2 (en) * 2002-06-24 2006-10-17 Microsoft Corporation Stack allocation system and method
US20070282928A1 (en) 2006-06-06 2007-12-06 Guofang Jiao Processor core stack extension
KR101334172B1 (ko) * 2007-01-05 2013-11-28 삼성전자주식회사 임베디드 시스템의 스택 오버플로우 방지 방법 및 장치
US8627475B2 (en) * 2010-04-08 2014-01-07 Microsoft Corporation Early detection of potential malware
US9928105B2 (en) * 2010-06-28 2018-03-27 Microsoft Technology Licensing, Llc Stack overflow prevention in parallel execution runtime
JP2012093832A (ja) 2010-10-25 2012-05-17 Toyota Motor Corp 情報処理装置
FR2977694A1 (fr) * 2011-07-08 2013-01-11 St Microelectronics Rousset Microprocesseur protege contre un debordement de pile
US8677189B2 (en) * 2011-11-16 2014-03-18 GM Global Technology Operations LLC Recovering from stack corruption faults in embedded software systems
US9058419B2 (en) * 2012-03-14 2015-06-16 GM Global Technology Operations LLC System and method for verifying the integrity of a safety-critical vehicle control system
US9143416B2 (en) * 2012-06-19 2015-09-22 Hewlett-Packard Development Company, L.P. Expander device

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000187601A (ja) * 1998-12-21 2000-07-04 Nec Corp スタックサイズ設定装置
JP2003323353A (ja) * 2002-05-01 2003-11-14 Denso Corp メモリ診断装置及び制御装置
JP2008003915A (ja) * 2006-06-23 2008-01-10 Denso Corp 電子機器
KR20110036243A (ko) * 2009-10-01 2011-04-07 콘티넨탈 오토모티브 시스템 주식회사 실시간 스택 검사 시스템 및 그 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190071208A (ko) 2017-12-14 2019-06-24 현대자동차주식회사 전자 제어 장치용 메모리 감시 및 사용 표시 방법 및 장치
KR102435347B1 (ko) 2017-12-14 2022-08-23 현대자동차주식회사 전자 제어 장치용 메모리 감시 및 사용 표시 방법 및 장치

Also Published As

Publication number Publication date
US9128630B2 (en) 2015-09-08
US20140359246A1 (en) 2014-12-04

Similar Documents

Publication Publication Date Title
KR101470162B1 (ko) 메모리 스택 사이즈 모니터링 방법
CN103309344B (zh) 验证安全关键的交通工具控制系统的完整性的系统和方法
US9482713B2 (en) Method and system of diagnosing breakdown during pre-charging
CN109460010B (zh) 基于知识图谱的车辆故障检测方法、装置及存储介质
CN102393733B (zh) 故障诊断方法、故障诊断仪及其系统、新能源汽车
CN109891148B (zh) 用于监控压力储箱系统的方法和控制单元
EP3379218B1 (en) Method for providing a diagnostic on a combined humidity and temperature sensor
KR101757075B1 (ko) 차량 고장 진단 분석을 위한 주행 데이터 모니터링 시스템 및 방법
CN112924887A (zh) 电池包健康检测方法、装置、可读存储介质及电子设备
CN111439127A (zh) 车辆、电池包的故障检测方法和装置
RU2566337C1 (ru) Устройство хранения неисправности и способ хранения неисправности
CN115436789A (zh) 继电器故障检测方法、装置、电子设备和存储介质
CN116736138A (zh) 动力电池监控方法、装置、可读存储介质及电子设备
JP2016222387A (ja) 昇降機の診断方式
CN114991906B (zh) 发动机机油量的监测方法及其装置、车辆、电子设备
WO2015030054A1 (ja) 電池制御装置
CN113815636B (zh) 一种车辆安全监控方法、装置、电子设备及存储介质
JP6227104B1 (ja) メモリ診断装置、車両制御装置、メモリ診断方法および車両制御方法
US10740204B2 (en) Method and apparatus for monitoring memory and for displaying use in electronic control device
CN108068787B (zh) 车辆制动信号诊断方法及装置
US10399593B2 (en) Prognostication of real time operating system health
CN113874871A (zh) 用于监控基础设施的方法
CN117034121A (zh) 霍尔传感器故障显示方法、装置、设备及存储介质
JP6639552B2 (ja) フェールセーフ制御装置及びフェールセーフ制御方法
US20130320988A1 (en) Method and Arrangement for Monitoring the Voltage on Electrical Storage Units, Battery and Motor Vehicle having such a Battery

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20171129

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20191127

Year of fee payment: 6