CACHE MEMORY IN TAMIL – TYPES OF MAPPING TECHNIQUES IN CACHE

TYPES OF MAPPING TECHNIQUES IN CACHE

CACHE நினைவகத்தில் MAPPING TECHNIQUE எவ்வாறு செயல்படுகிறது ஒரு பார்வை

கணிப்பொறியில் மூன்று விதமான CACHE TECHNIQUES உள்ளன.

1. DIRECT MAPPING

2. ASSOCIATIVE MAPPING

3. SET ASSOCIATIVE MAPPING

DIRECT MAPPED CACHE:-

கணிப்பொறியின் செயலியானது(PROCESSOR) தகவல்(DATA) MAIN MEMORYல் உள்ளதா அல்லது CACHE MEMORYல் உள்ளதா என்று சோதிக்கிறது.

முதலில் கணினியானது தகவல் Cache memoryல் உள்ளதா என்று பார்க்கும் இல்லையெனில் தகவலானது Main memoryல் உள்ளதா என்று பார்க்கும் இதுதான் அடிப்படியாக நாம் கருத்தில் கொள்ள வேண்டிய விஷயம் ஆகும்.செயலியானது(processor) தகவலை இரண்டு விதமான நினைவகங்களில்(Primary, Cache) எங்குள்ளது என்று தேடுகிறது.

நம் எப்பொழுதுமே இங்கு ஒன்றை நினைவில் கொள்ள வேண்டும் அது Cache memory யை விட Main memory அளவில் மிகப் பெரியது ஆகும். உதாரணமாக நாம் ஒரு விஷயத்தை கருத்தில் கொள்வோம் ஒரு ப்ரோஸ்ஸசரானது 6 bit அளவிலான முகவரியை உருவாக்குகிறது என்று வைத்துக்கொள்வோம். ஒருவேளை ஒரு ப்ரோஸ்ஸசர் 6 bit அளவில் முகவரி உருவாக்கினால் Main Memoryல் மொத்தம் எவ்வளவு Wordsகளை சேமித்து வைக்க முடியும்.

Main Memoryல் மொத்தம் எவ்வளவு Wordsகளை சேமித்து வைக்கலாம் என்பதை கண்டறிய நாம் கீழ்கண்ட Formulaவை பயன்படுத்தலாம்.

No of address bits = 6

2^No of address bits = 2^6 = 64 words

ஆக இங்கு நாம் Main memoryல் மொத்தம் 64 wordsகளை சேமிக்க முடியும். மேலும் முக்கியமாக நாம் இங்கு கவனிக்க வேண்டிய விஷயம் என்னவென்றால் Main memoryகள் அனைத்தும் Block by Block ஆக பிரிக்கப்பட்டுள்ளது ஒரு Blockல் நாம் 4 wordsகளை சேமிக்க முடியும். அப்படி எனில் 64 wordsகளுக்கு நமக்கு எத்தனை Blockகுகள் தேவைப்படும்.

Main Memory Total Blocks = 64/4 = 16 Blocks(0 to 15)

CACHE MEMORY IN TAMIL

இந்த Direct Mappingல் Main memory Blockம் Cache memory Blockம் ஒரே விதமாக 4 wordsகளை கொண்டுள்ளது. Main memoryல் மொத்தம் 0லிருந்து 15வரை 16 Blockகுகள் உள்ளது அதே போல Cache memoryல் 0லிருந்து 3வரை மொத்தம் 4 Blockகுகள் உள்ளன.

இந்த Cache memoryன் தத்துவம் என்னவென்றால் processor முதலில் தகவலை Cache Memoryல் தேடும் ஒருவேளை தகவல் கிடைக்கவில்லை என்றால் அது RAMல் தேடும் ஒருவேளை தகவல் RAMல் கிடைத்தால் அதனுடைய ஒரு பிரதியை Processor ஆனது CACHEல் சேமித்து விடும். இது எதற்காக தகவலை Cache Memoryல் சேமிக்கிறது என்றால் பின்னால் தகவலை எளிதாக Main memoryக்கு செல்லாமல் Cacheயிலிருந்தே எடுத்து கொள்ள முடியும்.

Main memory ஆனது Cache memoryயை விட பெரியதாக இருக்கும். ஆகையால் நாம் Main memoryல் உள்ள அனைத்து தகவலையும் Cache memoryல் சேமிக்க முடியாது அதற்காக நாம் Mapping techniqueயை உபயோகிக்கிறோம்.

ஒரு Cache memoryல் மொத்தம் எத்தனை Cache Line (or) Cache Block உள்ளது என்பதை கணக்கிட நாம் கீழ்கண்ட Formulaயை பயன்படுத்தலாம்.

No. of Cache Line = total number of mm blocks/per block words = 16/4 = 4

No. of Cache Line (or) Cache Block = 4 Lines or Blocks (0 to 3)

மேலே காட்டியுள்ள படத்தின் மூலம் நீங்கள் அனைவரும் Direct Mapping Technique எவ்வாறு செயல்படுகிறது என்பதை அறிய முடியும்.

Main Memory ஆனது மொத்தம் 16 Blocksகளை(0 to 15) பெற்றுள்ளது. ஒவ்வொரு Main Memory Blockகிலும் நாம் குறைந்தது 4 Wordsகளை சேமிக்க முடியும். மொத்தம் நாம் 0லிருந்து 63வரை 64 wordsகளை சேமிக்க முடியும்.

அதேபோல Cache Memory ஆனது மொத்தம் 4 Blocksகளை(0 to 3) பெற்றுள்ளது. ஒவ்வொரு Cache Memory Blockகிலும் நாம் குறைந்தது 4 Wordsகளை சேமிக்க முடியும். மொத்தம் நாம் 0லிருந்து 3வரை 16 wordsகளை சேமிக்க முடியும். ஆக 4 Block X 16 Words மொத்தம் 64 Wordsகளை சேமிக்க முடியும்.

MAIN MEMORY MAPPING IN DIRECT MAPPING:

DIRECT MAPPING, ASSOCIATIVE MAPPING, SET ASSOCIATIVE MAPPING போன்ற அனைத்திலும் MAIN MEMORY MAPPING ஒரே மாதிரியே செயல்படும் அதை கீழ்கண்ட வரைபடம் கொண்டு தாங்கள் கண்டறியலாம். இங்கு PROCESSOR ADDRESS ஆனது BLOCK NUMBER & OFFSET என இரண்டு பிரிவாக பிரிக்கப்படுகிறது. பிறகு BLOCK NUMBERக்கு இணையான BINARY NUMBERல் உள்ள நான்கு WORDSகளில் சரியான OFFSET(00, 01, 10,11) VALUE தேர்ந்தெடுக்கப்படுகிறது.

MAIN MEMORY MAPPING

CACHE MAPPING IN DIRECT MEMORY:

இங்கு PROCESSOR ADDRESS ஆனது TAG & CACHE LINE & WORD OFFSET என மூன்று பிரிவாக பிரிக்கப்படுகிறது. பிறகு CACHE LINEக்கு இணையான TAGல் உள்ள நான்கு BLOCKகளில் சரியான OFFSET(00, 01, 10,11) VALUE தேர்ந்தெடுக்கப்படுகிறது.

CACHE MEMORY MAPPING

Disadvantage:

*) இங்கே நாம் Cache Blockல் வெறும் 4 Blocksகளை மட்டுமே பயன்படுத்த முடியும்.

*) ஏதாவது ஒரு Blockல் ஏற்படும் வெற்று இடங்களை மீண்டும் பயன்படுத்த முடியாது.

How to Direct Mapping for Main Memory:

நாம் முன்பு பார்த்தது போல ப்ரோஸசரானது 6 bits addressயை generate செய்கிறது. அந்த 6 bit addressல் கடைசி 2 bitsகள் Offset ஆகும் மீதி 4 bitsகள் Binary number ஆகும். இந்த Binary Numberல் உள்ள Offset addressல் உள்ள wordயை நாம் இங்கு Retrieve செய்கிறோம்.

உதாரணமாக Processorன் முகவரியானது 111111 என்று இருந்தால் இங்கு நாம் முதலில் கொடுத்துள்ள 111111 என்ற முகவரியை இரண்டாக(Block number & Offset number) பிரிக்க வேண்டும். 111111 என்ற Binary numberன் 1111 என்ற இலக்கத்தின்(Block number) சமமான மதிப்பு 15 ஆகும். ஆகையால் 15வது Blockல் நாம் முதலில் தேடவேண்டும் என்று அர்த்தம்.

அந்த 15வது Blockல் மொத்தம் 4 wordsகள் 4 Locationsகளில் அதாவது 00, 01,10,11 உள்ளது. இங்கே 11 என்ற Locationல் 63 என்ற word உள்ளது அதுவே நாம் Retrieve செய்ய வேண்டிய Word ஆகும்.

DIRECT MAPPING MAIN MEMORY AND CACHE MEMORY PARTITION:

MEMORY DIVISION OF DIRECT MAPPING

How to Direct Mapping for Cache Memory:

நாம் முன்பு பார்த்தது போல ப்ரோஸசரானது 6 bits addressயை generate செய்கிறது. அந்த 6 bit addressல் கடைசி 2 bitsகள் Offset ஆகும் மீதி 4 bitsகள் Binary number ஆகும். இந்த Binary Numberல் 4 bitsயை மேலும் இரண்டாக பிரிக்கிறோம். முதல் இரண்டு bitsகளை tag என்கிறோம் நடுவில் இருக்கும் இரண்டு bitsகளை நாம் Line number(or) Block number என்கிறோம்.

உதாரணமாக Processorன் முகவரியானது 111111 என்று இருந்தால் இங்கு நாம் முதலில் கொடுத்துள்ள 111111 என்ற முகவரியை மூன்றாக(Tag Numer & Block number & Offset number) பிரிக்க வேண்டும். 111111 என்ற Binary numberன் 11 என்ற இலக்கத்தின்(Block number) சமமான மதிப்பு 3 ஆகும். ஆகையால் 3வது Blockல் நாம் முதலில் தேடவேண்டும் என்று அர்த்தம். பிறகு Tagல் உள்ள 11 என்ற Tag number இடத்திலுள்ள முகவரியை retrive செய்ய வேண்டும்.

அதாவது Cache memoryல் 3வது Blockல் மொத்தம் 4 wordsகள் 4 Locationsகளில் அதாவது 00, 01,10,11 உள்ளது. இங்கே 11 என்ற Locationல் 15 என்ற word உள்ளது அதுவே நாம் Retrieve செய்ய வேண்டிய Word ஆகும்.

What is Cache hit & Cache miss?

Processor மூலமாக Main Memoryயிலோ அல்லது Cacheயிலோ தேடப்படும் தகவல் இருந்தால் அது Cache Hit எனப்படும்.

Processor மூலமாக Main Memoryயிலோ அல்லது Cacheயிலோ தேடப்படும் தகவல் இல்லை என்றால் அது Cache Miss எனப்படும்.

FULLY ASSOCIATIVE MAPPING:

DIRECT MAPPINGல் CACHE LINE (OR) CACHE BLOCKல் மொத்தம் நான்கு CACHE LINEகள் (0, 1, 2, 3) உள்ளன. ஒவ்வொரு CACHE LINEயிலும் நான்கு PRIMARY BLOCKகள் உள்ளன. ஒவ்வொரு PRIMARY BLOCKயிலும் நான்கு WORDSகள் (00, 01, 10, 11) உள்ளன. இவைகள் அனைத்தும் நிலையானதாகும் நண்பர்களே மேலும் மாற்ற இயலாது. இங்கே CACHE LINEல் ஏதேனும் வெற்று இடம் ஏற்பட்டால் அதை நாம் உபயோகிக்க முடியாது. இந்த குறைகள் அனைத்தையும் FULLY ASSOCIATIVE MAPPING நமக்கு ஈடுசெய்கிறது.

DIRECT MAPPINGல் நாம் CACHE LINEயை MAPPING செய்யும் பொழுது மூன்றாகப் பிரிக்கிறோம் (TAG+CACHE LINE+WORD OFFSET). ஆனால் ASSOCIATIVE MAPPINGல் LINEயை MAPPING செய்யும் பொழுது இரண்டாக மட்டும் பிரித்தால் போதும்(BLOCK NUMBER+ BLOCK OFFSET).

உதாரணமாக 000110 என்ற PROCESSOR ADDRESS உங்களிடம் இருந்தால் தாங்கள் முதலில் உள்ள அந்த நான்கு பிட்களின்(0001) சரியான BLOCK NUMBER யை தேர்ந்தெடுக்க வேண்டும். அந்த BLOCK NUMBERகள் CACHE LINEல் எந்த BLOCKல் உள்ளதோ அங்கு செல்ல வேண்டும். பிறகு 10 என்ற OFFSET எண்ணை நாம் அந்த BLOCKல் LOCATE செய்ய வேண்டும்.

SET ASSOCIATIVE MAPPING:

இங்கே நம் முக்கியமா கவனிக்க வேண்டிய மாற்றம் என்னவென்றால் Processorஆல் உருவாக்கப்படும் Address ஆனது மூன்று பகுதிகளாக TAG, SET NO, WORD OFFSET என பிரிக்கப்படுகிறது.

SET ASSOCIATIVE MAPPING

இங்கே காணப்படும் ஒவ்வொரு SETயிலும் இரண்டு விதமான TAG PARTS காணப்படும்.

Share the knowledge

Leave a Reply

Your email address will not be published. Required fields are marked *