상기 기술적 과제를 달성하기 위한 본 발명의 일실시예로 쓰기 전력 계산 및 데이터 반전 기능을 통한 상 변화 메모리에서의 데이터 쓰기 장치는 상 변화 메모리로 쓰기(Write)될 데이터를 입력받는 입력부, 상기 입력받은 데이터의 쓰기 예정 된 상기 상 변화 메모리의 셀 위치상에서 기저장된 데이터를 읽어 들이는 읽기부, 상기 입력받은 데이터와 상기 읽어들인 기저장된 데이터를 비트별로 비교하여 상기 입력받은 데이터 중 상기 기저장된 데이터와 상이한 비트들을 쓰기 위한 총 전력 소모 값을 상기 상 변화 메모리의 각 비트 값에 따른 전력 소모 값을 기초로 계산하는 원본 데이터 전력 계산부, 상기 입력받은 데이터를 각 비트별로 반전시킨 후 상기 반전된 데이터를 상기 기저장된 데이터와 비트별로 비교하여 상기 반전된 데이터 중 상기 기저장된 데이터와 상이한 비트들을 쓰기 위한 총 전력 소모 값을 상기 상 변화 메모리의 각 비트 값에 따른 전력 소모 값을 기초로 계산하는 반전 데이터 전력 계산부 및 상기 입력받은 데이터에 대한 총 전력 소모 값과 상기 반전된 데이터에 대한 총 전력 소모 값을 비교하여 작은 총 전력 소모 값의 데이터를 상기 쓰기 예정된 상 변화 메모리의 셀 위치상에 저장하는 쓰기부를 포함한다.
상기 기술적 과제를 달성하기 위한 본 발명의 일실시예로 쓰기 전력 계산 및 데이터 반전 기능을 통한 상 변화 메모리에서의 데이터 쓰기 방법은 상 변화 메모리에서 쓰기(Write)될 데이터를 입력받는 단계, 상기 입력받은 데이터의 쓰기 예정된 상기 상 변화 메모리의 셀 위치상에서 기저장된 데이터를 읽어 들이는 단계, 상기 입력받은 데이터와 상기 읽어들인 기저장된 데이터를 비트별로 비교하여 상기 입력받은 데이터 중 상기 기저장된 데이터와 상이한 비트들을 쓰기 위한 총 전력 소모 값을 상기 상 변화 메모리의 각 비트 값에 따른 전력 소모 값을 기초로 계산하는 단계, 상기 입력받은 데이터를 각 비트별로 반전시키는 단계, 상기 반전된 데이터를 상기 기저장된 데이터와 비트별로 비교하여 상기 반전된 데이터 중 상기 기 저장된 데이터와 상이한 비트들을 쓰기 위한 총 전력 소모 값을 상기 상 변화 메모리의 각 비트 값에 따른 전력 소모 값을 기초로 계산하는 단계 및 상기 입력받은 데이터에 대한 총 전력 소모 값과 상기 반전된 데이터에 대한 총 전력 소모 값을 비교하여 작은 총 전력 소모 값의 데이터를 상기 쓰기 예정된 상 변화 메모리의 셀 위치상에 저장하는 단계를 포함한다.
상기 기술적 과제를 달성하기 위한 본 발명의 또 다른 일실시예로 쓰기 전력 계산 및 데이터 반전 기능을 통한 상 변화 메모리에서의 데이터 쓰기 장치는 상 변화 메모리로 쓰기(Write)될 입력받은 n 비트 데이터에 추가 비트를 더한 원본 데이터를 생성하는 원본 데이터 부, 상기 원본 데이터를 각 비트별로 반전하여 반전 데이터를 생성하는 반전 데이터 부, 상기 입력받은 n 비트 데이터의 쓰기 예정된 상 변화 메모리 셀의 위치상에서 기저장된 n+1 비트의 데이터를 읽어들이는 기저장 데이터 부, 상기 읽어들인 n+1 비트의 데이터를 상기 원본 데이터 및 상기 반전 데이터와 각각 비교하여 상이한 비트의 존부, 종류 및 개수를 확인하는 비트 비교부, 상기 비교로 상이한 비트가 존재하는 경우 상기 원본 데이터 및 상기 반전 데이터 각각에 대하여 상이한 비트의 종류에 따른 쓰기 전력 소모 값을 기초로 상기 상이한 비트의 개수를 곱하여 각각의 쓰기 총 전력 소모 값을 계산하는 전력 소모 계산부, 및 상기 계산된 원본 데이터의 쓰기 총 전력 소모 값 및 상기 계산된 반전 데이터의 쓰기 총 전력 소모 값 중에 쓰기 총 전력 소모 값이 작은 데이터에 대하여 상기 기저장된 데이터와 상이한 비트들을 상기 쓰기 예정된 상 변화 메모리 셀에 저장하는 데이터 쓰기부를 포함한다.
상기 기술적 과제를 달성하기 위한 본 발명의 또 다른 일실시예로 쓰기 전력 계산 및 데이터 반전 기능을 통한 상 변화 메모리에서의 데이터 쓰기 방법은 상 변화 메모리로 쓰기(Write)될 입력받은 n 비트 데이터에 추가 비트를 더한 원본 데이터를 생성하는 단계, 상기 원본 데이터를 각 비트별로 반전하여 반전 데이터를 생성하는 단계, 상기 입력받은 n 비트 데이터의 쓰기 예정된 상 변화 메모리 셀의 위치상에서 기저장된 n+1 비트의 데이터를 읽어들이는 단계, 상기 읽어들인 n+1 비트의 데이터를 상기 원본 데이터 및 상기 반전 데이터와 각각 비교하여 상이한 비트의 존부, 종류 및 개수를 확인하는 단계, 상기 비교로 상이한 비트가 존재하는 경우 상기 원본 데이터 및 상기 반전 데이터 각각에 대하여 상이한 비트의 종류에 따른 쓰기 전력 소모 값을 기초로 상기 상이한 비트의 개수를 곱하여 각각의 쓰기 총 전력 소모값을 계산하는 단계, 및 상기 계산된 원본 데이터의 쓰기 총 전력 소모 값 및 상기 계산된 반전 데이터의 쓰기 총 전력 소모 값 중에 쓰기 총 전력 소모 값이 작은 데이터에 대하여 상기 기저장된 데이터와 상이한 비트들을 상기 쓰기 예정된 상 변화 메모리 셀에 저장하는 단계를 포함한다.
이하, 첨부된 도면을 참조하여 본 발명의 일실시예에 대하여 자세히 살펴보고자 한다.
도 1은 본 발명의 바람직한 일실시예에 따른 쓰기 전력 계산 및 데이터 반전 기능을 통한 상 변화 메모리에서의 데이터 쓰기 장치의 구성도이다.
도 1을 참조하면, 상 변화 메모리에서의 데이터 쓰기 장치는 상 변화 메모리로 쓰기될 데이터를 입력받는 입력부(101), 상기 입력받은 데이터의 쓰기 예정된 상기 상 변화 메모리의 셀 위치(110)상에서 기저장된 데이터를 읽어 들이는 읽기부(104)를 포함한다.
또한 상기 입력받은 데이터와 상기 읽어들인 기저장된 데이터를 비트별로 비교하여 상기 입력받은 데이터 중 상기 기저장된 데이터와 상이한 비트들을 쓰기 위한 총 전력 소모 값을 상기 상 변화 메모리의 각 비트 값에 따른 전력 소모 값을 기초로 계산하는 원본 데이터 전력 계산부(102), 상기 입력받은 데이터를 각 비트별로 반전시킨 후 상기 반전된 데이터를 상기 기저장된 데이터와 비트별로 비교하여 상기 반전된 데이터 중 상기 기저장된 데이터와 상이한 비트들을 쓰기 위한 총 전력 소모 값을 상기 상 변화 메모리의 각 비트 값에 따른 전력 소모 값을 기초로 계산하는 반전 데이터 전력 계산부(103) 및 상기 입력받은 데이터에 대한 총 전력 소모 값과 상기 반전된 데이터에 대한 총 전력 소모 값을 비교하여 작은 총 전력 소모 값의 데이터를 상기 쓰기 예정된 상 변화 메모리의 셀 위치(110)상에 저장하는 쓰기부(105)를 포함하여 구성된다.
여기서 상기 상 변화 메모리의 각 비트 값에 따른 전력 소모 값은 상기 상 변화 메모리의 셀(110)에서 각 비트의 SET 또는 RESET을 위해 소모되는 전력 값을 말한다.
상기 쓰기부(105)는 상기 작은 총 전력 소모 값의 데이터를 상기 쓰기 예정된 상 변화 메모리의 셀 위치상에 저장시 상기 기저장된 데이터와 상이한 비트들만 저장하면 된다.
도 2는 본 발명의 바람직한 일실시예에 따른 쓰기 전력 계산 및 데이터 반전 기능을 통한 상 변화 메모리에서의 데이터 쓰기 방법에 대한 플로우 차트이다.
도 2를 참조하면, 먼저 상 변화 메모리에서 쓰기될 데이터를 입력받게 된다(201). 다음으로 상기 입력받은 데이터의 쓰기 예정된 상기 상 변화 메모리의 셀 위치상에서 기저장된 데이터를 독출한다(202).
상기 입력받은 데이터와 상기 독출된 기저장된 데이터를 비트별로 비교하여, 상이한 비트들을 쓰기 위한 총 전력 소모 값을 계산하게 된다(203).
다음으로 상기 입력받은 데이터를 반전시킨 후(204), 상기 반전된 데이터를 상기 기저장된 데이터와 비트별로 비교하여 상이한 비트들을 쓰기 위한 총 전력 소모 값을 계산한다(205). 총 전력 소모 값들을 계산하는데는 순서가 없는 바, 반전된 데이터의 쓰기를 위한 총 전력 소모 값을 입력받은 데이터를 그대로 쓰기 위한 총 전력 소모 값보다 먼저 계산할 수 있다.
상기 계산된 입력받은 데이터와 상기 반전된 데이터의 비교에 따른 총 전력 소모값을 비교하여 작은 총 전력 소모 값의 데이터를 쓰기 예정된 상기 상 변화 메모리의 셀 위치 상에 저장하게 된다(206). 여기서 상이한 비트라 함은 입력받은 데이터 또는 반전 데이터 중에서 상기 독출된 기저장된 데이터의 동일 위치 비트랑 그 값이 다른 비트를 말한다.
상기 총 전력 소모 값은 상기 각 비트 값에 따른 전력 소모값은 기초로 계산되며, 상기 상 변화 메모리의 각 비트 값에 따른 전력 소모 값은 상기 상 변화 메모리의 셀에서 각 비트의 SET 또는 RESET을 위해 소모되는 전력 값을 말한다.
도 3은 본 발명의 바람직한 일실시예에 따른 상 변화 메모리에서 데이터 흐 름을 기준으로 나타낸 데이터 쓰기 장치의 구성도이다.
이는 도 1에서의 데이터 쓰기 장치에 대한 다른 구성으로 상 변화 메모리에서의 상기 데이터 쓰기 장치를 데이터 처리 과정을 중심으로 나타낸 도면이다.
도 3을 참조하면, 상기 데이터 쓰기 장치(300)는 상 변화 메모리로 쓰기될 입력받은 데이터에 추가 비트를 더한 원본 데이터를 생성하는 원본 데이터 부(301)와 상기 원본 데이터를 각 비트별로 반전하여 반전 데이터를 생성하는 반전 데이터 부(302) 및 상기 입력받은 데이터의 쓰기 예정된 상 변화 메모리 셀(310)의 위치상에서 기저장된 비트의 데이터를 읽어들이는 기저장 데이터 부(303)를 관련된 데이터의 생성 및 입력을 위한 구성으로 두고 있다.
그리고 데이터의 비교 및 계산을 위한 구성으로 상기 읽어들인 비트의 데이터를 상기 원본 데이터 및 상기 반전 데이터와 각각 비교하여 상이한 비트의 존재여부, 종류 및 그 개수를 확인하는 비트 비교부(303)와 상기 비교로 상이한 비트가 존재하는 경우 상기 원본 데이터 및 상기 반전 데이터 각각에 대하여 상이한 비트의 종류에 따른 쓰기 전력 소모 값을 기초로 상기 상이한 비트의 개수를 곱하여 각각의 쓰기 총 전력 소모 값을 계산하는 전력 소모 계산부(304)를 두고 있다.
또한 상기 계산된 원본 데이터의 쓰기 총 전력 소모 값 및 상기 계산된 반전 데이터의 쓰기 총 전력 소모 값 중에 쓰기 총 전력 소모 값이 작은 데이터에 대하여 상기 기저장된 데이터와 상이한 비트들을 상기 쓰기 예정된 상 변화 메모리 셀(310)에 저장하는 데이터 쓰기부(306)를 마지막 구성요소로 두고 있다.
여기서 입력받은 데이터는 n비트이며, 상기 읽어 들인 기저장된 데이터는 n+1비트의 구성으로 되는데, 상기 추가 비트는 상기 원본 데이터가 반전되지 않은 데이터임을 나타내는 값으로, 상기 반전 데이터 부에서의 반전 데이터와 구분하기 위한 값을 말한다.
상기 비트 비교부(303)는 상기 각각의 비교 과정에서 상기 원본 데이터에서의 추가 비트 또는 상기 반전 데이터에서의 상기 추가 비트가 반전된 비트를 상기 기저장된 데이터의 n+1번째 비트와 비교할 필요가 없다. 이는 추가 비트 또는 반전된 비트는 원본 데이터와 반전 데이터 여부를 나타내는 비트이기 때문이다.
앞에서 언급된 상이한 비트의 종류라 함은 상기 원본 데이터나 상기 반전 데이터 상의 상기 비교된 비트 값이 RESET인 경우 또는 SET인 경우로 구분되는데, 각각의 경우 쓰기시 소모되는 전력 값이 상이하다.
계산의 편이를 위해 상기 상이한 비트의 종류에 따른 쓰기 전력 값을 SET과 RESET인 경우에 따른 각각의 상대적인 값으로 두므로, 상기 쓰기 총 전력 소모 값을 간단하게 계산할 수 있다.
쓰기 총 전력 소모 값의 계산은 복수의 상이한 비트가 존재하는 경우 각각의 상이한 비트의 종류(SET,RESET)에 따른 쓰기 전력 소모 값에 각 상이한 비트의 개수를 곱한 값들을 합하는 방법으로 구할 수 있다.
회로 구성으로 상기 비트 비교부(303)는 카운터(counter)를 이용하여 상기 읽어들인 n+1 비트의 데이터를 상기 원본 데이터 및 상기 반전 데이터와 각각 비교하도록 하며, 상기 전력 소모 계산부(304)는 곱셈기 및 덧셈기를 이용하여 상기 쓰기 총 전력 소모 값을 계산하도록 한다.
상기 데이터 쓰기부(306)는 뺄셈기 또는 비교기를 이용하여 상기 계산된 원본 데이터의 쓰기 총 전력 소모 값 및 상기 계산된 반전 데이터의 쓰기 총 전력 소모 값 중 상기 쓰기 총 전력 소모 값이 작은 데이터를 결정할 수 있다.
일실시예로 상기 전력 비교를 위한 기능은 4개의 카운터(counter), 2개의 곱셈기, 2개의 덧셈기, 1개의 뺄셈기(또는 비교기)를 사용하여 구현된다.
도 4는 본 발명의 바람직한 일실시예에 따른 상 변화 메모리에서 데이터 흐름을 기준으로 나타낸 데이터 쓰기 방법에 대한 플로우 차트이다.
도 4를 참조하면, 먼저 상 변화 메모리로 쓰기될 입력받은 n 비트 데이터에 추가 비트를 더한 원본 데이터를 생성하고(401) 상기 원본 데이터를 각 비트별로 반전하여 반전 데이터를 생성하며(402), 상기 입력받은 n 비트 데이터의 쓰기 예정된 상 변화 메모리 셀의 위치상에서 기저장된 n+1 비트의 데이터를 독출한다(403). 여기서 상기 데이터의 생성 또는 입력 간에는 우선 순위가 존재하지 않는다.
다음으로 상기 읽어들인 n+1 비트의 데이터를 상기 원본 데이터 및 상기 반전 데이터와 각각 비교하여 상이한 비트의 존부, 종류 및 개수를 확인하고(404),상기 비교로 상이한 비트가 존재하는 경우 상기 원본 데이터 및 상기 반전 데이터 각각에 대하여 각각의 쓰기 총 전력 소모값을 계산하게 된다(405).
상기 계산된 각각의 쓰기 총 전력 소모값 중에서 쓰기 총 전력 소모 값이 작은 데이터에 대하여 상이한 비트들을 상기 쓰기 예정된 상 변화 메모리 셀에 저장하므로(406) 쓰기 과정을 완료하게 된다. 여기서 상기 상이한 비트의 종류는 상기 원본 데이터나 상기 반전 데이터 상에서 상기 비교된 비트 값이 RESET인 경우 또는 SET인 경우로 구분된다.
상기 읽어들인 n+1 비트의 데이터를 상기 원본 데이터 및 상기 반전 데이터와 각각 비교시(404) 상기 추가 비트 또는 상기 추가 비트가 반전된 비트는 반전 데이터 여부를 나타내는 것인바 상기 기저장된 데이터에서의 n+1번째 비트와 비교할 필요가 없다.
그리고 상기 쓰기 총 전력 소모값을 계산시 상이한 비트의 종류에 따른 쓰기 전력 소모 값을 기초로 하여 각각의 상이한 비트의 종류에 따른 쓰기 전력 소모 값에 각 상이한 비트의 개수를 곱한 값들을 통합하여 합한 값으로 구해진다.
도 5는 본 발명의 바람직한 일실시예에 따른 상 변화 메모리에서 전력 계산 데이터 반전 회로를 이용한 데이터 쓰기 방법에 대한 플로우 차트이다.
이는 쓰기 전력 계산과 데이터 반전 기능을 가진 상 변화 메모리 장치의 구성에서의 처리 과정을 나타내는 것으로 도 5를 참조하면, 먼저 데이터 입출력 회로 (I/O circuit, 501)에서 상 변화 메모리 셀에 저장할 n비트의 저장할 데이터 (Write_data[n:1])가 들어오고, 읽기 회로 (Read circuit, 502)에서 n+1 비트의 저장할 위치에서 읽혀진 데이터(Read_data[n:0])이 들어온다(504).
일실시예로서 n비트를 저장하기 위해서 n+1비트를 사용한다. 추가되는 1비트는 입력 데이터를 그대로 저장하였는지 (0) 반전시켜 저장하였는지 (1)를 구별하기 위해서 저장하는 비트이다. 새로 입력되는 저장 데이터 (Write_data[n:1])에서 추가되는 1비트는 기본적으로 반전되지 않은 데이터이기 때문에 (0)이다(503). 저장 데이터가 반전되는 경우에 이 추가 비트는 (1)이 된다.
Alpha 값(505)은 상 변화 메모리에서 "0"을 저장할 때 소모되는 SET 전력 소모 (PSET)와 "1"을 저장할 때 소모되는 RESET 전력 소모 (PRESET)의 비이다. 즉, Alpha = PSET/PRESET. 상 변화 메모리는 "0"을 저장할 때의 SET 전력 소모와 "1"을 저장할 때 RESET 전력 소모가 다르기 때문에 상 변화 메모리에 사용되는 전력을 계산하기 위해서는 두 전력 소모의 비인 Alpha 값이 필요하다.
전력 계산 데이터 반전 회로 (Power Calculation Data Inversion Circuit: PDI, 506)는 저장할 데이터 (Write_data[n:1]+0, 503), 저장할 위치에서 읽혀진 데이터(Read_data[n:0], 504), Alpha 값을 계산하여 Write_data[n:1]+0을 직접 메모리에 저장할 경우의 전력 소모량과 반전시켜 저장할 경우의 전력 소모량을 비교하여, 그대로 저장하는 경우가 전력 소모가 작은 경우 PDI=0을 출력하고, 반전하여 저장하는 경우가 전력 소모가 작은 경우 PDI=1을 출력한다(507).
PDI의 결과에 따라, 상변화 메모리에 저장되는 데이터가 달라진다. PDI=0이면(507) Write_data[n:1]+0을 저장하고(508), PDI=1이면 /Write_data[n:1] +1을 저장한다(509).
상 변화 메모리에 데이터를 저장하는 경우, 데이터 쓰기 회로 (Data Write Circuit, 510)는 읽혀진 데이터와 저장된 데이터를 비트마다 비교하여, 각 비트에 저장되어 있던 값과 새롭게 저장될 값이 다른 경우에만 쓰기를 한다. 이런 과정은 PDI 회로에서 전력 소모를 계산할 때 고려되어 전체 소모 전력량이 계산된다.
도 6은 본 발명의 바람직한 일실시예에 따른 전력 계산 데이터 반전 회로에 서 데이터의 쓰기 전력을 계산하는 방법을 나타내는 플로우 차트이다.
이는 쓰기 전력 계산 데이터 반전(PDI) 장치의 일실시예를 나타내는 것으로 PDI 회로에서는 저장할 데이터를 그대로 저장할 때의 전력소모 (X)와 저장할 데이터를 반전하여 저장할 때의 전력소모 (Y)를 비교하여, X>Y 인 경우 PDI=1 (반전 저장)과 X<Y 인 경우 PDI=0 (원본 저장)의 결과를 내보낸다(620).
저장할 데이터를 그대로 저장할 때의 전력소모 (X)를 계산하는 경우, 읽혀진 데이터(Read_data[n:0],601)와 저장할 데이터 (Write_data[n:1]+0,602)를 비트별로 비교를 한다. 각 비트의 읽혀진 값과 저장될 값이 같은 경우 새롭게 저장할 필요가 없기 때문에 이 경우의 전력소모는 포함되지 않는다.
각 비트의 읽혀진 값과 저장될 값이 같은 경우는 읽혀진 값과 저장된 값이 똑같이 "0"이거나 "1"인 경우이다. 반면, 읽혀진 값이 "1"이고 저장될 값이 "0"인 경우 (1->0),"0"을 저장하기 위한 SET 전력(PSET)이 소모된다(603).
읽혀진 값이 "0"이고 저장될 값이 "1"인 경우 (0->1), "1"을 저장하기 위한 RESET 전력(PSET)이 소모된다(604). 상변화 메모리는 "0"을 저장할 때의 SET 전력 소모와 "1"을 저장할 때 RESET 전력 소모가 다르기 때문에 상변화 메모리에 사용되는 전력을 계산하기 위해서는 두 전력 소모의 비인 Alpha 값(607)이 필요하다. Alpha = PSET/PRESET. PDI 회로는 소모 전력의 절대량을 계산하는 것이 아니라, 원본 데이터 저장과 반전 데이터 저장의 상대 비교하여 어느 경우 전력 소모가 더 작은 가를 알려주는 회로이기 때문에, 절대량을 계산할 필요가 없다.
따라서, 보통 전력 소모가 더 작은 RESET 전력을 PRESET =1로 하고 SET 전력을 PRESET = Alpha 로 하여 전력 소모를 계산한다. 우선 X를 계산하기 위해서는 1->0 으로 변하는 비트의 수 (A)를 구하고(605), 0->1로 변하는 비트의 수(B)를 구한다(606). 전체 SET을 위한 전력 소모는 A의 Alpha 배이고, 전체 RESET을 위한 전력 소모는 B와 같다. 따라서, X = Alpha * A + B (608)가 된다. X를 구하기 위해서 2개의 counter와 1개의 곱셈기 1개의 덧셈기가 필요하다. 상변화 메모리 소자가 결정되면 Alpha는 고정되기 때문에 Alpha를 곱하기 위한 곱셈기는 간단히 만들어 질 수 있다.
저장할 데이터를 반전시켜 저장할 때의 전력소모 (Y)를 계산하는 경우, 읽혀진 데이터(Read_data[n:0],611)와 저장할 데이터의 반전 데이터 (/Write_data[n:1] +1,612)를 비트별로 비교를 한다. 전력 소모를 구하는 과정은 X를 구하는 과정과 같다. 우선 Y를 계산하기 위해서는 1->0으로 변하는 비트(613)의 수(C)를 구하고(615), 0->1로 변하는 비트(614)의 수(D)를 구한다(616). 전체 SET을 위한 전력 소모는 C의 Alpha 배(617)이고, 전체 RESET을 위한 전력 소모는 D와 같다. 따라서, Y = Alpha * C + D(618)가 된다. Y를 구하기 위한 하드웨어는 X와 같다.
X와 Y를 구한 후 두 값 중 어느 값이 큰지를 비교하여, X>Y 인 경우 PDI=1 (반전 저장)과 X<Y인 경우 PDI=0(원본 저장)의 결과를 내보낸다(620). X와 Y의 비교는 앞에서 언급한 뺄셈기를 사용하거나 크기 비교기를 사용하면 된다.
만약 입력 데이터의 비트 수 n=8이고 alpha=5이며 상기 입력 데이터될 데이 터가 Write_data[8:1]=00000011, 셀에 저장되어있던 데이터가 Read_data[8:0] = 00111110(0)인 경우 상기 입력될 데이터에 추가비트를 더한 저장될 데이터는 Write_data[8:1]+0= 00000011(0)가 된다.
이때, 8비트는 저장할 데이터의 크기이고 추가 비트(1비트)는 반전 여부를 저장하는 비트를 말한다. 따라서, 비교되어 저장될 비트는 총 9비트가 된다.
먼저 입력될 데이터를 그대로 저장할 경우의 쓰기 전력 소모량을 상기 설명한 방법으로 계산하게 된다.
0->1으로 바뀔 때 전력을 1로 계산할 때 상대값인 1->0으로 바뀔 때의 전력은 0->1로 바뀌는 전력을 나눈 값인 alpha로 하여 계산하게 된다. 먼저 원본 데이터 즉 입력된 데이터에 추가비트를 더한 데이터(Write_data[8:1] + 0 = 0000 0011 (0))와 상기 저장되어 있던 데이터(Read_data[8:0] = 0011 1110 (0))를 비교하여 1->0으로 바뀌어야 하는 상이한 비트의 개수(A)와 0->1로 바뀌어야 하는 상이한 비트의 개수(B)를 구한다.
비교하면 A = 4, B = 1 이 되고, 공식에 따라 X = alpha * A + B = 5 * 4 + 1 = 21가 된다. 이는 입력된 데이터를 그대로 저장할 경우 즉, 반전되지 않은 데이터를 쓰기하는 경우에 소모되는 총 전력 값이다.
다음으로 입력 데이터를 반전시켜 저장할 경우의 쓰기 전력 소모량을 계산하면, 상기 입력된 데이터를 반전하여 구해진 반전 데이터(/Write_data[8:1] +1= 1111 1100 (1))와 셀이 저장되어 있던 데이터(Read_data[8:0] = 0011 1110 (0))를 비교하여 역시 1->0으로 바뀌어야 하는 상이한 비트의 개수(C)와 0->1로 바뀌어야 하는 상이한 비트의 개수(D)를 구한다.
비교하면 C = 1, D = 2 이 되고, Y = alpha * C + D = 5 * 1 + 2 = 7이 된다. 이는 반전된 데이터를 쓰기는 경우에 소모되는 총 전력 값이다.
따라서 상기 X와 Y값을 비교하면 X(=21)>Y(=7)이므로 PDI = 1이 되어, 이 경우는 쓰기 전력 줄이기 위하여 반전시켜 저장하는 것이 쓰기 전력 소모 값을 줄이게 되는 것이다.