 اسلام علیکم سٹوٹنس، ایم و سیمی کرام اسی the 42nd لیکٹر اریزیزا 45 لیکٹرزا ان دیجٹالوجیک دیزائن کیسے آپ شلہ اچھی ہوں گے لہست لیکٹر میں ہم نے میمبیس پر دیسکرشن کیتے دفنم کسی کون سٹر چو تھی وہ ہم نے پڑھے تھے دسکرس کیتے ہم نے دیسکرشن شروع کیتے دینامیک میمبیس سے پھر ہم نے بات کیتے رامس پر اور ان میں ہم نے فلاش میمبیس پر بات کیتے آج انشلہ دسکرشن جاری رکھیں گے اس سے پہلے کہ آج کی دسکرشن شروع کرنے آئیے لہست لیکٹر کے جو کونٹنٹ سے ان کو زرہ رویو کر لیں لہست لیکٹر میں ہم نے اپنے دسکرشن شروع کی تھی دینامیک رام کے read write cycle سے دینامیک رام جسے کیا آپ کو معلوم ہے اس کی جو ایڈرس پنزیں ہم کو ملٹی پلکس کیا ہوا that means جو کمپلیٹ ایڈرس ہے جو کے ایک لکیشن کو سپیسفائی کرتا ہے وہ ہم سیملٹینیسلی اپلائی نہیں کر رہا ہے بسکلی ہم نے ایڈرس کو split کر دیا انٹو روی ایڈرس and column ایڈرس so read write cycle میں بسکلی جو split ایڈرس ہے یا جو ملٹی پلکس ایڈرس ہے اس کا قیال لکھنا ہے so read کے قیس میں پہلے آپ نے microprocessor بسکلی روی ایڈرس اپلائے کرے گا ایڈرس لائنس پر ساتھ میں ایک روی ایڈرس جس کی مدد سے جو ایڈرس ہے وہ اندر لائچ ہو جائے گا internal جو ہے روی ایڈرس لائچ اس کے بعد microprocessor column ایڈرس وہ اپلائے کرے گا ساتھ میں column address روی ایڈرس اپلائے کرے گا column address وہ column address لائچ میں store ہو جائے گا اس کے بعد of course اگر read کرنا ہے تو read جو پلس ہے یا read signal جو ہے اس کو ایڈرس کرنا ہے تو information جو ہے read کر سکیں گے الہاں Finally we should know what all the right values are which are available to everybody results will be available to everyone because of the message alt. we are showing each other will be we will show it will be will be will be will be this one it will be ریٹ سائیکل ہوگئے، ریٹ سائیکل ہوگئے۔ ایک ہم نے بات کیتی، فاست ایکسس کی۔ فاست ایکسس جو ہے، دینمیکڈ ریام میں ہمیں یہ فیصلتی اویلبل ہے کیونکہ رو ایڈرس ہم پہلے لچ کر چکے ہوئے اور جسا کہ آپ کو معلوم ہے، ایک رو میں ملٹپل کولمز ہے بسکلی ایک کپاستر اور ایک ٹرانزیسٹر کا کومبنیشن ہے جو کہ ایک بٹ کو سٹور کر رہا ہے تو ایک رو میں ملٹپل کولمز ہے، ملٹپل اس قسم کے ٹرانزیسٹرز اور کپاسترز لگیاں میں، انفارمیشن سٹور ہے لیکن آپ نے سکسسیف لوکیشن سے انفارمیشن ریٹ کرنی ہے یا رائٹ کرنی ہے تو اس کا ایک طریقہ تو یہ جو سٹینڈرٹ طریقہ ہے آپ رو ایڈرس بھیجیں، پھر کولم ایڈرس بھیجیں، اس سے وہ لوکیشن سلکت ہو جائے گی آپ اس لوکیشن پے یہاں تو ریٹ کر سکتے ہیں یا رائٹ کر سکتے ہیں اس کے بعد جو next سکسیف لوکیشن ہے، اگین اس کا رو ایڈرس بھیجیں گے، کولم ایڈرس بھیجیں گے، لوکیشن سلکت ہو جائے گی پھر ریٹ کریں گے، یہاں رائٹ کریں گے اس کو ایک سیسٹ ٹائم بیسکلی رو ایڈرس بھیجنے میں اور پھر کولم ایڈرس بھیجنے میں پھر دوارہ ایک نیا رو ایڈرس بھیجنے میں اور کولم ایڈرس بھیجنے میں ٹائم آپ کا زیاد ہو رہا تو تیم کو کم کرنے کے لیے اس میں جو ایک کامن چیز ہے وہ ہے رو رو کا ایڈرس چینج نہیں ہو رہا کولم کا ایڈرس چینج ہو رہا تو جو فاشت میمڈی ایکسیس ہے جس میں آپ سیکسسیو لکیشنز کو ایکسیس کر رہے اس کس میں آپ بسکلیک رو سیگنل بھیجنگے وہ لچ ہو جائے گا اور اس کے بعد جو ہے صرف c-a-s سیگنل جو ہے کولم ایڈرس توب جو سیگنل ہے وہ آپ پلس کریں گے سو ہر کلوک پر c-a-s سیگنل ایکٹیویٹ ہو رہا ہے ہر ایک کولم سے آپ انفرمیشن ریڈ یا رائیٹ کر سکتے ہیں دینیمک ریمک کا رفریش سائیکل وہ ہم نے دسکل کیا تھا بسکلی دینیمک ریمک کی جو امپلیمنتیشن ہے وہ بیشت ہے کپاستر پر کپاستر جو ہے انفرمیشن سٹور کر رہا کچھ عرصے کے بعد کچھ time کے بعد انفرمیشن اپنی لوز کر جاتا بسکلی دس چارج کر جاتا تو اگر آپ دینیمک ریمک کو پریوڈیکلی ریگوڈرلی چارج نہیں کرتے انفرمیشن کو ریفریش نہیں کرتے then you lose that up تو ہر دینیمک ریمک کے ساتھ ایک ریفریش سائیکل use کرنا ہوگا جو کہ آپ پریوڈیکلی ڈیفن روز کو باری باری سلک کر رہے ہیں اور ان روز کی مدد سے آپ ریسکلی سیلز جو ہیں جو کولم میں ٹرانزسٹرز لگے میں اور کپاسترز لگے میں ان کو ریفریش کر رہے ہیں تو دو قسم کی ریفریش سائیکل ہیں ایک تو ہے برسٹ موڈ میں جس میں آپ جو مائک روز سیسر ہے وہ read write operation نہیں کرے بسکلی مائک روز سیسر کو ایک طریقے سے آیسولیٹ کر دیا گیا ہے دینیمک ریمک سے دینیمک ریمک میں پہلہ آپ رو ایڈرس جنویٹ کریں گے پہلی رو سلکت ہو جائے گے اس پہ جتنے بھی سیلز ہیں کپاسترز ہیں وہ سلکت ہو جائیں گے ان سارے کپاسترز کو آپ ریٹ کریں گے اور پہلی ریفریش بافر وہ سارے کپاسترز دوارہ سے ریفریش ہو جائیں گے اس طرح next row سلکت کریں گے next row میں جتنے بھی کپاسترز لگے میں بسکلی ہر کالم میں وہ سلکت ہوں گے read کیا انفارمیشن through the refresh buffer انفارمیشن واپس اس میں رائیٹ کر دی اس طرح اگر ہمارے پاس 1 مگ بٹ کی دیرام ہے that means 1024 rows ہوں گے 1024 columns ہوں گے تو کالمز کو سلک کرنے کی ضرط نہیں سمپلی آپ 1024 جو روز ان کو باری باری سلک کریں اور پوری کی پوری dynamic RAM جو ہے یہ ریفریش ہو جائے گی اب یہ جو سارا process ہے dynamic RAM کو refresh کرنے کا یہ کچھ ملی سیکنس میں 8 ملی سیکنس کے قریب میں ہو جاتا ہے اس میں ایک جو دوسر طریقہ ہے بسکلی اس کو کہتے ہیں distributed refresh distributed refresh میں let us suppose کہ آپ کا microprocessor جو ہے اس میں regularly information یا تو dynamic RAM میں لکھنی ہے تو آپ افورڈ نہیں کر سکتے کہ اس dynamic RAM کو آپ isolate کر دیں اور refresh cycle آپ رن کریں اس میں آپ distributed cycle رن کریں گے microprocessor بھی اس RAM کو access کر سکتے ہیں اور آپ dynamic RAM کی کچھ روز کو آپ refresh کر سکتے ہیں اس میں آپ کو بسکلی یہ خیال رکھنا ہوں گا کہ last row cup refresh ہوئی تھی next row کونسی والے refresh ہوگی اور دوسر important thing یہ ہے کہ جس ہم نے بتا ہے کہ 1024 rows let us say 8 millisecond میں refresh ہوتی ہیں تو اگر ایک اٹ کر کے آپ کر رہے ہیں تو you have to be careful کہ ہر row جو ہے اس time period میں وہ refresh ہو جائے اگر نہیں ہوگے تو information loose ہو جائے گے refresh کے بھی different طرقہ ہیں ہم نے پڑھا تھا rs only basically row address trove only row address trove only میں basically یہ جو signal ہے activate ہو جاتا ہے اور column address trove جو signal ہے جو انیکٹف رہتا ہے وہ اس میں کوئی کام نہیں کرتا row address trove پہلی row's address سلک کر لے گا آگے والی جو next rows وہ ایک external counter کی مدد سے ہم ان کے addresses جنریٹ کریں گے so row address trove only refresh cycle میں ایک external counter لگایا جائے گا جو کے different rows row addresses جنریٹ کرے گا جس کی مد سے ہم different rows سلک کر کے ان کو refresh کر دا جائیں گے دوسر طب کا جو ایک refresh cycle that is c a s before r a s column address trove before row address trove read cycle میں right cycle میں جس اگہ ہم نے دیکھا پہلے row address آتا ہے پھر column address آتا ہے so that means row address trove پہلی activate ہوتا ہے اس کے بعد column address trove activate ہوتا ہے so c a s before r a s میں column address trove activate ہو جائے گا so اگر column address trove پہلی activate ہوتا ہے یہ ہمیں بتا رہا ہے کہ ہم نے ایک internal counter لگا ہوتے اس کو use کرنا ہے row addresses جنویٹ کرنے کے لیے so basically refresh cycle چلے گا so external counter ہم use نہیں کریں گے internal counter وہو use کریں گے وہ row addresses جنویٹ کرے گا اور row ہم پڑھکیں اور اس کو refresh کریں گے اس میں اگر آپ کو circuit diagram جات ہو row address جو decoder ہے اس سے پہلے ایک data selector لگا ہوا data selector بیسکل دو inputs ہیں ایک تو external row address آرہا ہے او در سے ہے اور دوسر internal row address counter ہے اس کے ساتھ connect it ہے دانیمیک ریم کی ہم نے different types تسکتی تھی دانیمیک ریم میں different types ہوتی ہیں اور اس دانیمیک ریم میں کافی development ہو رہی ہے تو آپ اگر دیکھتے رہے ہیں data sheets میں اور different products انوانس ہو رہے ہیں تو جبان ہر مہینے ہر سال میں ایک نیا پروڈکٹ آ رہا ہوتے اور وہ پشلے پروڈکٹ سے زیادہ اس کا fast ہوتے that means access time کم ہے اس میں information رپرٹ لیے microprocessor تو کافی high speed پے کام کرنے جو bottle like وہ ہے ram جس میں information اپنے store کی ہوئی ہے تو microprocessor کے ساتھ ساتھ جو ram میں کافی development ہو رہی ہے بیسیکلی ہم نے تین کسم کی دانیمیک ریم کیا تھا ایک fast mode access fast mode access ان پہلے بھی دیکھتے ہیں آپ نے access time کو reduce کرنا ہے تو اس میں اگر successive locations access کرنے normally program جب آپ executive کر رہے ہوتے ہیں جو instructions وہ sequence میں دوسری دوسری کے بعد تیسری اور وہ usually ایک consecutive addresses پر پڑی ہوتی ہیں تو dynamic ram میں fast mode access میں وہی بات ہے کہ ہم row کو سلک کر لیں گے اس کے بعد column جو ہے وہ بار بار چینج کرتے رہنگے تو that means ہم successive locations وہ ہر clock میں ہم access کر پایں گے دوسرہ جو ہم نے type discuss کی تھی وہ تھی extended data output بسکلی دونوں میں fast mode access اور extended output میں کوئی اتنا فرق نہیں ہے timing diagram اگر آپ دیکھیں fast mode access میں جو ہی column address stop signal inactive ہو جاتا ہے اس کی وجہ سے جو output buffer ہے ram کا وہ deactivate ہو جاتا ہے that means آپ جو ہے information read کر رہے ہیں تو وہ پڑ نہیں سکیں گے کیونکہ output buffer وہ deactivate ہو گے okay اب اگر کوئی microprocessor جو dynamic ram سے data پڑا ہے تو اگر ایسی ہے کوئی اور کام کر رہا ہے اس نے ابھی information نہیں پڑی تو that means آپ جو CAS signal ہے اس کو deactivate نہیں کریں گے اگر deactivate کیا تو آپ output buffers جو میں بالکل inactive ہو جائیں گے پڑ نہیں سکیں گے so CAS اگر آپ deactivate نہیں کرے that means نیا جو address ہے جو next location کو آپ نے جس سے آپ نے information پڑنی ہے یا لکھنی ہے اس میں صرف فرق یہ ہے کہ CAS signal اگر inactive بھی ہو جائے data buffers output buffers وہ active رہتے ہیں so یہ کب inactive ہوگے جب اب next address column address جو ہے وہ generate کریں گے تو آپ کے پاس ایک زیادہ time مل جاتا ہے external device کے لے یا microprocessor کے لیے کہ وہ information جو ہے read کر پائے تیسی جو type تھی ہم نے کہتا ہے synchronous dynamic ram جو ہے synchronous اور asynchronous basically فرق یہ ہے کہ ہم clock signal use کر رہے ہیں اور clock کے ساتھ جو microprocessor کے clock ہے and dynamic ram وہ اپس میں synchronized manor میں کام کریں گے read and write operations ہوگے so access time جو ہے ہم بڑے tightly control کر سکتے ہیں dynamic ram کے بعد ہم نے rom کے بات کہتی read only memory read only memory جس کے نام سے ذاہر ہے ہم صرف read کر سکتے ہیں اس میں information لکھ نہیں سکتے ہیں ہم نے discussion کی تھی کہ rom اس میں important data وہ ہم program کر دیتے ہیں جب کوئی system کوئی visual system اس کو on کرنا ہے تو اس نے کوئی ایک state میں چلے جانا ہے اپنے آپ کو initialize کرنا ہے تو وہ information کہاں سے آئے گی وہ instructions کہاں سے ملیں گی basically وہ permanently کسی جگہ میں پہلے ہوں تاکہ جب بھی آپ انکریں وہ اس جگہ سے information پڑے اور آپ نے آپ کو initialize کر لے so this information basically rom میں رکھی جاتی کیونکہ یہ permanent ہے اور non volatile non volatile اس کی جو construction ہے یا implementation جو ہے rom کی وہ بری simple ہے ایک transistor کی مدد سے ہم ایک cell کو implement کر رہے ہیں اور جو cell ہے اس میں ہم one store کر سکتے ہیں یا zero store کر سکتے ہیں so basically ایک transistor ہے جس کا gate وہ row کے ساتھ connected ہے اس کا output ہے وہ column line کے ساتھ connected ہے اگر gate row کے ساتھ connected ہے اور output اس کا column line کے ساتھ connected ہے جو ہی آپ appropriate rows ایک transistor جس کا gate اس کے ساتھ connected ہے وہ activate ہو جائے کا output پہ آپ کو information مل جائے گی so that means اس transistor نے ایک logic one store کیا ہوا اگر آپ جو gate اور row کے درمیان connection ہے transistor کا اس کو now remove کر دیں so that means جب بھی row select ہوئی transistor select نہیں ہوگا اس کی output line تو column line کے ساتھ connected ہے او در کوئی information نہیں آگی that means transistor اس نے zero یا logic zero کو store کیا ہوا ایک ray ہوگی rows and columns کی forms بہت سرے transistors ہوگے جن کو program کرنا ہے basically اگر one store کرنا ہے تو ان کا connection row اور gate کے درمیان ہوگا اگر logic zero program کرنا ہے تو row اور gate کے درمیان connection جو ہے وہ remove ہو جائے گا تین چاہر جسم کی different rom ہے سب سے پہلی mask rom basically mask rom جو manufacturer ہے اس کی طرف سے program آتی ہے جو user ہے اس کو program نہیں کر سکتا so basically you just buy the rom with the information اپنے سسٹمہ لگائیں اور اس کو use کر سکتے سیکن تاپ کی جو rom تھی وہاں کہہ رہے ہیں p rom programmable rom یہ جو programmable rom اس کو آپ ایک ہی دفعہ program کر سکتے ہیں so you just buy the rom آپ جو بھی develop کیا ہے جو بھی information اس میں store کرنا چاہ رہے ہیں اس کو program کر دیں once you have programmed the rom اب اس کو change نہیں کر سکتے rom جو a mask rom اور p rom basically fact کیا ہے again transistor ہی use ہو رہے information کو store کرنے کے لیے but p rom میں جو transistor کا output ہے اور جو column line جس کا ساتھ وہ connect ہوتا اس کے درمیان ایک fuse ہم نے connect کیا ہوا ہے تو اگر وہ fuse intact رہتا ہے that means transistor کا output جو ہے column کے ساتھ connected ہے اگر اس fuse کو ہم remove کر دیتے ہیں so that means جو transistor کا output ہے وہ column کے ساتھ connected نہیں ہے so if this transistor جس کا output connected نہیں ہے column کے ساتھ اگر اس کو select کیا جائے by selecting the row تب بھی information column line پر نہیں آئی گی so that means اس پریکلو transistor میں zero stored ہے اگر fuse intact ہے that means اس نے one store کیا ہوا so basically p rom میں یہ جو fuses ہیں وہ اپنے blow out کر دیں اگر آپ نے zero store کرنا ہے تو fuse remove کر دیں گے ایک دفعہ fuse remove ہو گیا تبارہ سے اس کو لگایا نہیں جا سکتا that means آپ دبارہ سے p rom کو program نہیں کر سکتا ہے تیسے جو طائف ہم نے discuss کی تھی ایک تھی irasable p rom irasable p rom کا مطلب ہے کہ ہم اس کو erase بھی کر سکتے ہیں اور program کر سکتے ہیں اور یہ کافی دفعہ ہم کر سکتے ہیں اس میں جہاں بھی آپ development کر رہے ہیں آپ لب میں مٹ ہے کوئی product بنا رہے ہیں کوئی digital system بنا رہے ہیں تو اس میں آپ you cannot afford کے بھی ایک p rom لیں اس کو ایک دفعہ program کر دیا اور آپ کا system چلنا شروع ہو جائے گا debugging کرنی پڑتی یہ ہو سکتا ہے errors آئیں تو آپ کو بار بار information program کرنی پڑے تو اس کے لیے best solution ہے یہی ہے erasable p rom erasable p rom اس میں again fuses نہیں لگے وہ تھے different technique اس کی وجہ سے آپ اس کو erase program کر سکتے ہیں اس different technique اس کی مدد سے we erase and program کر سکتے ہیں اس کی وجہ سے اس کی سرکٹری extra circuitry basically لگانی پڑتی ہے اس کی density وہ کم ہو جاتی ہے compared to other جو rom سے اس کو erase کیسے کرنا ہے again دو تیپس کے ہیں ایک جو ہے uv erase so uv جو ہے ultra violet light کے نیچے رکھیں گے memory کو اس کے اوپر a quartz window ہوتی ہے جو نیچے جو circuit ہے memory کو اس کو expose کر رہی ہوتی ہے ultra violet line up shine کریں گے information erase ہو جائے گی دو بارہ programmer میں رکھیں گے اس کو program کر دیں گے programming کا طریقہ کیا ہے basically ہم نے few pens discuss کی تھی اگر e prom ہم کو ان کی pens جو ہیں ایک جو pens ہے اس میں high dc اپنے apply کرنی ہے اور دوسری جو pens ہے اس پر اپنے pulse بار بار بھیجنی ہے pulse جب بھیجن گے تو آپ نے data بھی specify کرنا ہے and address بھی specify کرنا ہے basically اپنے information program کرنے any memory میں تو کس location پر وہاں information آپ نے لکنی ہے تو آپ نے address بھی specify کرنا ہوگا and that information be specify کرنی ہوگی so let us suppose کہ آپ کا e prom ہے 16 location کی ہے اور ہر location 8 bits کو store کر رہا ہے so آپ ایک counter circuit بنائیں گے جو programmer کا حصہ ہوگا وہ counter circuit وہ 8 addresses باری باری generate کر رہے گا اور ساتھ میں آپ کو کوئی files سے information پر جو آپ نے اس prom میں لکنی ہے so basically یہ طریقہ ہوگا ایک erasable prom کو program کرنے گا a fourth type تھی وہ تھی electrically erasable program p-rom جو ہے electrically erasable کا uv کے نیچے رکنا نہیں ہے so basically اگر آپ کا ایک circuit ہے آپ نے design کر لیا اس میں uv e prom لگے ہوئی ہے آپ نے کوئی bug detect کی ہے اب آپ نے اس میں program چینج کرنے تو کیا ہوگا آپ وہ نکالیں گے uv e prom کو uv light کی نیچے رکھیں گے eras ہو جائے گے دبارہ programmer میں لگائیں گے program کر کے واپس circuit میں insert کرنے گے electrically erasable prom کا فیدہ ہے کہ uv e prom اس کو circuit سے نکال کے uv light کی نیچے expose کرنا پڑے گا دبارہ لگانا پڑے گا electrically erasable prom ہے circuit میں لگی ہوئی ہے چینج کرنے آپ electrical pulses سے ہی چینج کر سکتے ہیں دبارہ سے اس کو program کر سکتے ہیں ان ساری جو rom mask rom p-rom e prom ان کا basically structure کیا ہے دو important dress coworkers ورائیک transgenderending m but ring oh any g he he be e an ڈی کورو ایک ڈی کورو ڈی کورو ڈی کورو ایک اوٹپوٹ ڈی کورو ڈی کورو ڈی کورو ہم 4 بیٹس سٹور کر رہے ہیں تو ہر روھ ہے وہ کنیکٹ ہوگی چار ٹرانزیسٹرز کے ساتھ سو اگر ہم نے 1 1 1 1 سٹور کرنا ہے تو چاروھ جو ٹرانزیسٹرز ہیں پہلی والی روھ میں ان کے گیٹس اس روھ کے ساتھ کنیکٹڈ ہیں ان کے جو ڈو اوپٹس ہیں وہ چار کولم لائنس کے ساتھ کنیکٹڈ ہیں. جب بھی آپ ایڈرس 0 کو یا لکیشن 0 کو سلک کریں گے سuyaانے کے جو ڈو ڈو ڈو ڈو ڈو ڈو ڈو ڈو ڈو ڈو ڈو ڈو spare quantitative items want ڈو ڈو ڈو ڈو ڈو ڈوä Some of them will be relevant to buy it. بہتکہ اس ڈیہنے ڈو ڈو ڈوتی ان کے ڈو ڈو ڈو ویٹس'dی مضمد جو performing although کہ وہی کام کیسے کر رہے روم جو ہے پیکٹکلی کیسے оргانیس ہوگی وہ ہوگی in the form of rows and columns. So ہم نے ایک ازمپل لی تھی کہ ایک 32 rows ہیں and 32 columns ہیں اور جو میمری ہم نے امیمٹ کی تھی 256 and 24. That means 256 locations ہیں اور ہر location پہ چار بیٹس store ہو رہے ہیں. So 32 rows کا مطلب ہے ہم 32 locations ہے ہمارے پاس. 32 columns جو ہیں اب ہمیں 32 columns تو نہیں چاہیے کیونکہ چار پیٹس ہیں. So 4 columns ہی چاہیے پر 32 columns کا مطلب ہے ہم نے 8 groups of information store کیوئی ہے. So اس میں جو چینج ہے basically جو address ہے اس کو ہم نے split کر دیے into row address and column address. جیسے ہم نے پہلے دسکس کیا ہوا ہے کہ جب بھی میمری بڑی ہو جائے گی تو آپ you cannot afford to have a linear structure. Linear structure کا مطلب یہ ہے کہ آپ ایک ہی address decoder لگائیں اور وہ سارا جو external address ہے اس کو decode کریں. Basically اگر 1 million locations ہیں تو آپ کو بہت بڑا اس قسم کا ایک address decoder design کرنا پڑا جس میں بہت سارے gates ہوں گے اور وہ address decoding میں کافی سارا ڈیلے ہوگا. So اس ڈیلے کو ختم کرنے کے لیے ہم نے کہا تھا کہ address کو split کرنے دو addresses میں row address and column address جس کی وجہ سے دو چھوٹے address decoder use ہوں گے. So basically یہ جو 256 into 4 bit rom ہم نے مرن کرنی ہے as a 32 row 32 column array. ہم یہ کہہ رہے تھے کہ output پی بسکلی ہمیں 4 multiplexer چاہیے جو ہیں 8 inputs ہیں اور 1 output ہے. So کیونکہ 8 groups ہیں ان کی ایک ایک bit جو ہے ہر multiplexer کے ان پٹ کے ساتھ کونکٹد ہے جو 5 bits ہیں وہ row address decoder کے ساتھ کونکٹد ہیں. So 5 addresses row addresses کا مطلب ہے ان میں سے 1 32 میں سے 1 row سلکت ہوگی اور اسی طرح جو 3 bits ہیں وہ سلک کریں گی. ایک a particular set of a group جو ہے کیونکہ 8 groups ہیں تو اس میں سے 1 group سلکت ہوگا. So that means ہمارے پاس 4 bit output آ جائے گا. Next ہم نے بات شروع کی تھی جو rom ہے use basically کہاں ہو رہی ایک تو سب سے اہم باتی ہے کہ جو initialization information ہے وہ ہم store کر رہے ہیں. دوسرا میں یہ کہا تھا کہ تیبل جو ہے conversion tables ہیں ایک binary آپ کے پاس count value ہے اس کو آپ نے ربزن کرنا ہے in equivalent gray value میں تو کیا ہوگا. ایک آپ rom لے لیں جو addresses ہیں وہ بتا رہے ہیں basically binary count value. So 0000 addresses جو ہے وہ ربزن کر رہا ہے binary 0 کو 0001 جو ہے وہ ربزن کر رہا ہے binary 1 کو اسی طرح. different addresses different binary values کو ربزن کر رہا ہے. in locations میں in addresses پہ. 0000 کے جو addresses ہے اس location پہ آپ ایک value store کر لیں تو جب بھی وہ addresses سلک کریں گے وہ information پڑھ لیں گے تو وہ ربزن کرے گا اس addresses کو. so آپ basically convert کر رہے ہیں. So 3 ہے 3 addresses پہ آپ corresponding جو gray value ہے وہ سلک کر لیں جو ہی addresses 3 سلک کریں گے data پہ 4 bit gray value آجائے گی. practical اس کے implication ہم کہہ سکتے ہیں کہ let's سے آپ کے پاس ایک camera ہے جو automatic cameras ہوتے اس میں aperture setting اور جو ہے shutter speed جو ہے وہ آپ کو change کرنی پڑتی ہے. automatic میں یہ پہلے سے ہوتا ہے light intensity major کی اور خود سے shutter سیٹ ہو جائے گا. so basically یہ information کنہ ہوگی ایک rom میں ہوگی. so information پڑی وہ change کر دی. light intensity پڑی اس کو convert کیا in the form of address information اور corresponding information of rom کے data output سے پڑھا ہے. We have discussed different type of memories. ideally کے ideally جو memory کی characteristics ہونی چاہیے ان میں read write ہونا چاہیے non volatile ہونا چاہیے. that means power کو remove کریں تو جو ان کے information ہے وہ دو رہنی چاہیے. high density ہونی چاہیے that means come space میں زیادہ information retain کرے. access time fast ہونا چاہیے. that means address apply کیا تو فرن ہی آپ کو data ideally مل جائے. so جتنے کم time میں ملے گا. that means آپ information اُدنی جلدی a process کر سکتے ہیں. آخر میں cost effective ہونا چاہیے. تو یہ پانچ امپورٹن پیرمیٹرز ہیں. یہ اگر کسی memory میں ہوتا ہم سمجھیں گے ایک ڈیل کسم کی memory ہے. جو ہم نے static RAM پڑی dynamic RAM دسکس کی ROM دسکس کی ان میں کچھ کریکرسٹیکسیں سارے نہیں ہے. for example RAM جو ہم نے پڑے تھی اس میں جو تھا non volatile جو ہے وہ نہیں ہے volatile ہے. اگر ہم remove کرنے power کو تو ان فرمیشن لوز ہو جائے گی. ROM for example non volatile تو ہے. but write ہم نہیں کر سکتے صرف read کر سکتے ہیں. dynamic RAM جو ہے بیسکلی ایک تو non volatile ہے. sorry ڈینس ہے. but access time slow ہے as compared to static RAM. so basically different memories میں different characteristics ہیں. ایک flash memory ہے جن میں تکیمین یہ پانچوں characteristics ہیں. flash memory بیسکلی again اس کا پہلے ہم دیکھ لے دیں کبھی implement کیسے ہوئی ہے. اس میں کیا operations ہم کیا سکتے ہیں. اس کے بعد ہم structures وگرہ جو ہے اس کا جو structure ہے وہ دسکس کرے گے. flash memory جو ہے again transistor جو ہے MOS transistor کی مدد سے implement کیا جاتی ہے. MOS transistor کے تین terminals ہوتے ہیں. ایک gate drain and source. basically again جو اس کا structure ہوگا وہ ہی rows and column کی فرم میں two dimensional array ہوگے جس میں یہ transistors جو ہے connect کیا ہوں ہے. اگر gate پہ کوئی plus voltage پلائے کریں تو 4 جو ہے وہ gate پہ accumulate ہو جائے گا. ہم کہیں گے کہ اس گیٹ کو ہم نے program کر دیں یا اس سل کو program کر دی ہے. اگر charge گیٹ پہ accumulate ہوگے ہم یہ کہیں گے کہ اس نے zero store کر دی logic zero کو store کر دی ہے. logic one store کرنے کے لیے basically charge جو ہے وہ گیٹ پہ نہیں ہوگا. اگر charge ہے تو ہم کہیں گے logic zero ہے اگر charge نہیں ہے کہیں گے logic one ہے. flash memory کے ساتھ basically ہم تین operations کر سکتے ہیں. programming operation program کر سکتے ہیں. read operation basically information ہم read کریں flash memory سے اور erase operation جو contents flash memory کے ان کو erase کر رہے ہیں. سب سے پہلے دیکھ لیتے ہیں کہ program کیسے کرنا ہے. program کرنے کے لیے جو گیٹ ہے transistors کا سارے جتنے بھی transistors ہیں flash memory میں جو array میں لگے ہوں ہے. کسی ایک transistors کو program کرنے کے لیے basically آپ نے اس گیٹ کو plus voltage پلائے کرنے. charge جو ہے اگر آپ apply کرتے ہیں وہ accumulate ہو جائے گا. that means zero store ہو گیا. اگر charge accumulate نہیں ہوتا. that means one store ہو گیا. تو یہ تو ہو گیا. programming logic zero and logic one کے. اگر آپ نے erase کرنا ہے basically جو source ہے اس پر positive voltage apply کریں گے اور جو گیٹ ہے اس پر zero voltage apply کریں گے. تو اگر charge گیٹ پر accumulate ہوا ہے وہ train ہو جائے گا. وہ نکل جائے گا. that means آپ نے جو flash memory اس کو erase کر دیا. so basically erase is like initializing. اب شروع میں جو flash memory ہوگی اس کو آپ نے erase کرنا ہے. تو جتنے بھی transistors ہیں اس ارے میں سارے erase ہو جائیں گے. so that is like writing a one. initial state میں flash memory کے transistors جو ہے وہ one کو store کرنے ہیں. read کرنے کے لیے basically جو train and source ہے transistors کا اس کے درمیان اگر current flow ہوتا ہے so that means کچھ ہم پرنے کی کوشٹ کر رہے ہیں. اگر transistors کے گیٹ پر charge store ہے so پرنے کے لیے اس کو read کرنے کے لیے آپ ایک voltage plus voltage apply کریں گے اس کے گیٹ پر اس کی وجہ سے جو کیونکہ charge ہم نے accumulator کیا ہوا گیٹ کے پاس تو وہ اس effect کو cancel کر دے گا so that means جو current ہے source اور drain کے درمیان وہ در current نہیں flow ہوگا. so that means اس کو ہم کہیں گے اگر current نہیں flow ہو رہا ہم کہیں گے کہ zero store ہوا ہے. اگر charge جو ہے گیٹ پر accumulator نہیں ہوا positive voltage apply کر رہے ہیں گیٹ پر a current flow ہوگا جو source اور drain کے درمیان اگر current flow ہوتا ہے that means logic one value جو وہ store کیوئے I discuss کرتے ہیں flash memory کا structure basically یہ memory جو ہے organized ہوا ہی اسی طرح two dimensional رے کی form میں rows ہیں and columns ہیں ہر row میں different transistors ہیں basically ایک transistors جو ہے ایک bit کو store کر رہا so ایک جو row ہے جس میں multiple transistors ہیں وہ row connect ہوا ہی ہر transistors کے گیٹ کے ساتھ ہر column میں دو لینز ہیں ایک source کو اپس میں connect کر رہے اگر آپ visualize کریں ایک column میں multiple transistors ہوں گے so ایک source line ہے جو ہر transistors کی source line کو اپس میں connect کیا ہوا ہے اور ایک drain line ہے جو ہر transistors کی drain line کو اپس میں connect کر رہے ہر column میں ایک active load ہے جو کہ اس drain line کے ساتھ connected ہے اور ایک comparator ہے جو کہ basically compare کرتا ہے so let us suppose کہ ہم ایک information پرنا چاہ رہے ہیں so basically row address آیا row address سے ایک row سلکت ہوئی تو جتنے بھی اس row میں transistors ہیں وہ سلکت ہو جائیں گے column address decoder جو ایک column line کو سلکت کرتا ہے so اس پتکرل column اور اس پتکرل row میں جو transistors ہیں اس کو ہم سلک کر رہے ہیں جو ہر column line سلکت ہوتی ہے تو source جو ہے وہ 0 volt کے ساتھ connect ہو جاتا ہے so that means ایک پات مل جاتا ہے drain and source کے بعد کے درمیان drain جو ہے active load کے ساتھ connect ہے high voltage کے ساتھ connect ہے اگر اس پتکرل transistor پے کوئی charge stored ہے that means logic zero stored ہے تو current flow نہیں ہوگا اور active load پے voltage drop جو ہے وہ نہیں ہوگا اگر اس پتکرل transistor پے کوئی charge stored نہیں ہے تو ایک current flow ہوگا اور active load پے ایک voltage drop ہوگا voltage drop جو ہے وہ ہم مجر کر رہے ہیں basically ایک comparator کے ساتھ comparator کے بسکل دو inputs ہیں ایک میں یہ جو voltage drop ہے وہ ہم اپلائے کر رہے ہیں اور دوسرہ جو comparator کا input ہے اس در ایک ہم نے reference voltage اپلائے کیوئی ہے اگر logic zero stored ہے کوئی current flow نہیں ہوگا active load پے کوئی voltage drop نہیں ہوگا so basically جو comparator ہے اس کا ایک input جو ہے جو active load کے ساتھ connect ہے وہ 0 volt پے ہوگا اور دوسا input جو ہے وہ reference voltage کے ساتھ ہوگا اس کا output جو ہے وہ high ہوگا so that means اگر output high ہے that means zero stored کیا ہوا اگر اس بھٹکل ٹرانزیسٹر پے charge نہیں ہے میں voltage row select کی ایک current اس میں سے flow ہوگا voltage drop ہوگا voltage drop جو ہے it would be equal to the V reference so جو comparator کے دو نو inputs برابر ہوں گے output پے zero آئے گا so basically ہم نے اگر logic one stored کیا ہوا output پے zero آئے گا invert ہوگے آرہا آئی دیکھتے ہیں اس کا structure جو ہم نے explain کیا ہے اس کو ہم زرہ تھوڑا سے diagram کی form میں دیکھ لیتے ہیں diagram میں ایک flash memory آئے دیکھائے گے یہ سب سے پہلے row select zero لین دیکھائے گے جس کے ساتھ تین transistor connected ہے تین transistor کے gates connected ہیں so جو ہی یہ row select zero لین active ہوگی تینوں transistor کے gates پے ایک plus voltage یا voltage apply ہوگی so that means یہ gates جو ہیں on ہوگا اسی طرح row select one دکھائے گے row select two سب سے نیجے row select n so basically اس ممری میں n rows ہیں اور ہرک میں n transistors ہیں diagram میں صرف تین transistor ہر row میں دیکھائے گائے column wise اگر دیکھیں ہر transistor جو ہے ہر column میں ہر transistor کا drain جو ہے ایک common line کے ساتھ connect ہے اور اسی طرح ہر transistor کا source ہے وہ ایک common column select line کے ساتھ connect ہے جو common drain line ہے اس کے output پے ایک active load دکھائے گیا جس کا input ہے basically وہ plus v volt کے ساتھ connect ہے اسی common drain line کے ساتھ ایک comparator circuit دکھائے گیا ہے جس کا ایک جو input ہے وہ اس active load کے ساتھ connect ہے اور دوسرا جو input ہے وہ ایک reference voltage کے ساتھ connect ہے let us suppose کہ ہم تیسری جو row ہے basically row select two جو ہے وہ signal activate ہوئے کوئی address apply کیا ہے جس کی وجہ سے row select two signal activate ہوگے اس میں تین transistors دکھائے گے سب سے پہلا جو transistor اس میں charges stored ہیں charges دکھائے گئے سیکن جو transistor اس میں کوئی charges stored نہیں ہیں اور جو آخری والا transistor اس میں again charges stored ہیں column address کی وجہ سے جو بیچ والا column ہے وہ select ہوگئے جو transistor جو select ہوئے جسے information پڑھنے ہیں اس میں کوئی charge نہیں ہے that means this نے logic one store کیا ہوا during column line select ہوئی second column line ہے وہ basically logic zero پے connect ہوگی پاکی جو column line سے وہ logic one پے connected ہیں جو ہی column line logic zero سے connect ہوگی جو selected transistor ہے اس کا source zero پے young ground پے connect ہوگیا transistor کا جو selected transistor ہے اس کا drain جو ہے وہ active load کے ساتھ connected ہے جو کے plus five volt کے ساتھ connected ہے so current flow ہوگا اس transistor میں current flow ہوگا active load پے voltage drop ہوگا reference voltage جو ہے اس کے ساتھ compare کیا جائے گا comparator جو ہے دونوں کیونکہ voltage drop برابر ہیں data output جو ہے comparator کا اس میں logic zero آئے گا so that means one store کیا ہوا ہے اس transistor پے اگر column one select ہو تھا تو transistor ہے row select two پے اس پے charge is stored ہیں charges کیونکہ stored ہیں تو اس کی وجہ سے کوئی current flow نہیں ہوگا so that means active load ہے پہلے column کا اس کے across کوئی voltage drop نہیں ہوگا comparator کا جو one ایک جو input ہے جو active load کے ساتھ کو connected ہے وہ ground ہوگا یا zero voltage ہوگی اور دوسرہ جو ہے reference voltage پے ہوگا so output جو ہے اس کا one ہو جائے گا which represents logic zero ابھی ہم نے ایک flash memory کا structure دیکھا two dimensional structure ہے so again rows lines ہیں and column lines ہیں جس کی مدد سے ہم ایک transistorہ سلک کر رہے ہیں comparator کے output پے ہمارے پس logic one یا logic zero آئے گا depend کرتا ہے کہ اس transistor پے castored ہے آئی different جو memories ہیں ان کو ہمزا summarize کر لیں کہ جو static RAM ہیں اس میں کیا characteristics ہیں dynamic RAM میں کیا ہیں flash RAM میں کیا ہیں ROM میں کیا ہیں آئی table دیکھتے ہیں اس کے بعد ہم discussion جو next memories ہیں special type کی memories ان پے discussion continue کرتے ہیں diagram میں ایک table دکھایا گیا جو کہ different memory's کے characteristics کو summarize کر رہے ہیں سب سے اوپر static RAM دکھایا گیا جو کہ non-volatile نہیں ہے non-volatile نہیں ہے that means اگر اس کا power remove کر دیا جائے تو information جو ہے وہ lose ہو جائے گی اسی طرح یہ high density نہیں ہے high density کیوں نہیں ہے static RAM جیسے کہ آپ کو یاد ہو ایک cell جو ہے یا ایک fit information کو store کرنے کے لیے ایک flip flop جایے flip flop جو ہے basically 4 6 transistors 4 یا 6 transistors کی مدد سے implement ہو رہا ہے that means جو memory ہے اس کی density low ہے کیونکہ بہت سارے transistors use ہو رہے ہیں بہت کم cells کو یا information کو store کرنے کے لیے one transistor cell ہے of course نہیں ہے کیونکہ ہم نے بتایا تھا کہ 6 transistors use ہو رہے ہیں ایک cell کو implement کرنے کے لیے in system right ability ہے yes read right ہے تو static RAM میں اب جب بھی چاہیں لکھ سکتے ہیں اس میں پڑھ سکتے ہیں so right ability ہے نیچے dynamic RAM ہے dynamic RAM again non-volatile نہیں ہے power remove کریں information lose ہو جائے گی high density ہے کیونکہ ایک cell جو ہے وہ ایک transistor اور ایک capacitor کی مدد سے implement ہو رہا ہے so come space میں بہت سن information up store کر سکتے ہیں one transistor cell of course ہے کیونکہ ایک ہی transistor جایے جو کہ ایک capacitor کو switch on off کر رہے ہیں in system right ability ہے dynamic RAM ہے read بھی کر سکتے ہیں write بھی کر سکتے ہیں تو کسی system میں اگر dynamic RAM لگا ہوا ہے اس میں information store کر سکتے ہیں that means right کر سکتے ہیں rom جو ہے non-volatile yes it is non-volatile rom جو ہے ہم نے جیسے بتایا information permanently store کرتا ہے power remove کریں تو information retain رہے گی high density ہے high density اس لی ہے کیونکہ ہر cell جو ہے وہ ایک transistor کی مدد سے implement ہو ہے تو ایک cell کے لیے ایک transistor چاہیے that means less space میں زیادہ memory آسکتی ہے one transistor cell of course ہے ہم نے بتایا ہے کہ ایک transistor ہی چاہی ایک cell complement کرنے کے لیے in system right ability نہیں ہے rom جیسے ہم نے پہلے دسکتے ہیں ہم پڑ سکتے ہیں لک نہیں سکتے ہیں right نہیں کر سکتے ہیں so right ability نہیں ہے e-prom جو ہے again non-volatile ہے power remove کردیں information retain رہے گی high density ہے one transistor cell of course ہے اس کے ساتھ اب بیسکلی آپ نے ایک fuse لگانا ہے جو بلو کردیں تو پھر آپ program نہیں کر سکتے ہیں in system right ability نہیں ہے rom ہے بیسکلی آپ اس میں کچھ لک نہیں سکتے ہیں e-prom جو ہے electrically erasable جو e-prom ہے non-volatile of course آپ power remove کردیں information retain رہے گا high density اس لی نہیں ہے کیونکہ اس کو erase کرنے کے لیے program کرنے کے لیے extra circuitry چاہئے that means high density نہیں رہے گی one transistor cell of course نہیں ہے کیونکہ وہ extra circuitry چاہئے اس کو erase کرنے کے لیے program کرنے کے لیے in system right ability ہے کیونکہ ہم نے جیسے بتایا تھا ہے کہ uvee-prom جو ہے اس کو ہم system میں رکے program نہیں کر سکتے ہیں پر electrically erasable جو prom ہے اس کو ہم system میں رکھتے ہوئے program کر سکتے ہیں finally جو flash memory ہے اس میں یہ five characteristics ہیں non-volatile ہے power remove کردیں information retain رہے گی جو charges ہم گیٹ پے store کرنے وہ forever تک بن رہتے ہیں وہ lose نہیں ہو گے high density ہے basically ہم نے دیکھا کہ ہر cell کو implement کرنے کے لیے ایک transistor چاہئے so come space میں بہت سارے cells آپ implement کر سکتے ہیں one transistor cell ہے of course and in system right ability ہے system میں اگر flash memory لگی ہوئے اس میں آپ information right کر سکتے ہیں آئی ہم دو special purpose memories کے بارے میں بات کرتے ہیں ایک ہے first and first out memory اور ایک ہے last and first out memory basically ان کے implementation بھی ابھی تک جو memories ہم نے discuss کیا ان سے different ہے دونوں memories جو ہیں ہم transistor کی مدد سے یا flip flop کی مدد سے ہم implement نہیں کر رہے basically ہم shift registers use کر رہے ہیں ان کو اپس میں connect کر کے ان دو memories کو implement کرتے ہیں پہلے سمجھتے ہیں کہ these memories special کیوں ہیں اور use کہاں ہوتی ہیں basically راہم ہم نے پڑا اس میں ہم نے کہا تھا ہے اس کو use کرتے ہیں information important information یا instructions store کرنے کے لیے یا as a table کے طور پہ ہم کوئی information کو convert کرنا جا رہے تو ایک راہم base table بنا سکتے ہیں اس میں ram جو ہے اس میں program instructions ہیں یا جو data ہے وہ ہم store کرتے ہیں اور وہ permit of course نہیں رہتا ہم ram کو program کر سکتے ہیں کوئی different set of instructions اس میں دال سکتے ہیں اور ان کو پھر fetch کر کے microprocessor fetch کرے گا execute کرے گا جو first in first out memory ہے جس ہم نے بتایا ہے کہ یہ transistor یا flip flop کی مدد سے implement نہیں ہوئی یہ shift registers کی مدد سے implement ہوئی ہے first in first out memory جو ہے basically as a buffer use ہوتی ہے buffer basically کیا ہے بفر ایک جو ہے information کو temporary thought پہ store کرتا ہے اور usually ہم buffer ان جگوں پہ استمال کرتے ہیں جان دو devices جو ہیں different speed پہ information کو communicate کر رہے ہیں so let's let's suppose you have a computer اور ایک کوئی external device ہے جوکہ information computer کو بھیج رہی ہے computer میں جو microprocessor لگا ہوا وہ کافی fast device ہے اور جو external information آرے جو data آرے جو بھی device data بھیج رہی وہ کافی slow ہے so basically microprocessor اگر اس کا انتظار کرتا ہے جو external device ہے تو اپنا کوئی کام یا program جو execute نہیں کرے گا so basically microprocessor جو ہے ایک buffer implement کرتا ہے جو بھی external device ہے وہ information buffer میں دالے گی اور microprocessor جب بھی پرنا چاہے اپنا جب کام ختم کر کے جو بھی program execute کر رہا تھا تو اس buffer سے information کو پڑھ سکتا ہے اسی طرح اگر microprocessor جو ہے ایک fast device ہے اور وہ کوئی external device کو information بھیجا ہے تو microprocessor تو کیونکہ fast ہے تو وہ بہت کم time میں بہت سارے information external device کو بھیج سکتا ہے external device کیونکہ slow ہے تو وہ اس سارے دیتا کو اتنی جو تیزی سے دیتا آر ہے اس سارے کو use نہیں کر سکتی so basically ایک buffer چاہے جس میں جو processor ہے microprocessor ہے وہ informations buffer میں دالے گا اور جو external device ہے جب بھی وہ ready ہوگی اس buffer سے باری باری ایک ایک کر کے information پڑتی جائے گی اور آگے اس کو use کرتے جائے گی basically جس order میں آپ information بھیج رہے ہیں اسی order میں آپ نے extract کرنے ہیں so let's say ایک device ہے 798 تین number سے اس نے data generate کیا ہے buffer میں دالنے ہیں تو جو next device جو پڑے گی وہ بھی اسی order میں پڑے گی 798 ہی پڑے گی 897 نہیں پڑے گی تو buffer میں جو جو order ہے information کا اس کو وہی رکنا چاہے اس میں change نہیں ہونا چاہے آئی ایک سمپل کو Discuss کرتے ہیں جو کمالی computer میں use ہوتی ہے basically آپ کا key board ہے جو ایک input device ہے جو کہ کافی slow ہے as compared to your microprocessor جو کہ computer میں لگا ہے جو information کو process کر رہا ہے جب بھی آپ key board پے کچھ keys دباتیں ہیں اس میں تو وہ ساری information جو ہے وہ بہت slowly microprocessor تک پہنچ دپین کرتا ہے آپ کے typing rate میں اگر slow ڈائپ کرنے ہیں تو جو بھی آپ نے character ڈائپ کیا ہے وہ information microprocessor تک پہنچائے گی جتنی دیر میں آپ information ڈائپ کرنے ہیں microprocessor ڈائپ تو اتنی دیر میں بہت ساری instructions ڈائپ کر سکتا ہے اس میں جو اگر microprocessor ڈائپ کیبورڈ کا انتظار کرے کبھی جو آپ نے پیس کیا ہے تو اس کے بعد next instruction ڈائپ کرے تو بیسکلی بہت سارا time waste جائے گا program بہت slow ہو جائے گا تو key board ڈائپ نورمالی connect ہوتا ہے microprocessor ڈائپ کے ساتھ through a key board buffer یہ key board buffer جو ہے اگن ہوئی والا کام کر رہا ہے ایک slow device ہے وہ information جو ہے ایک fast device کو communicate کرنا چاہ رہی ہے direct connection نہیں کریں گے تو جو key board ڈائپ information ڈائپ ہوری ہے وہ ہم buffer میں ڈال رہے ہیں جو microprocessor ڈائپ جب بھی اپنے کام سے فارغ ہو گیا let's سے کچھ instructions ڈائپ execute کر دیے ہیں اب اس نے buffer میں سے پڑھنے information تو it would simply go to the buffer اس میں جو buffer کے output میں جو بھی information پڑی ہوئی وہ پڑھ لے گا پڑھنے کے بعد اس کے بعد جو buffer ہے اس کے contents update ہوں گے پہلی byte let's سے پڑھ لیے جو second byte ہے وہ اس کو move کر کے buffer کے output پہ آجا نا چاہے so next information microprocessor پڑھے گا again buffer کے output پہ جو بھی information ہوگی وہ پڑھے گا اسی طرح جو دو bytes ہم نے پڑھ لیے ہیں let's سے buffer کا size 10 bytes کا ہے تو اس میں اب دو bytes کی جگہ create ہو گئے so keyboard مزید دو bytes اس میں لکھ سکتا ہے so basically buffer کو use کرنے کے لیے ہم نے buffer کے input کو ہم نے monitor کرنا ہے buffer کے output کو monitor کرنا ہے کہ کہاں سے ہم نے پڑھنا ہے اور کہاں information ہم نے enter کرنیے اسے پہلے کہ buffer کی جو implementation ہے using shift registers دو طریقیں بسکلی shift registers کے طرف بھی buffer implement کر سکتے ہیں and memory کے طرف بھی کر سکتے ہیں computer میں جو keyboard buffer ہے وہ memory کے طرف implement کیا ہوا so basically ہم دون implementations کو دیکن گے اسے پہلے کہ ہم دون implementations دیکن گے ہم دیکھتے ہیں کہ یہ جو devices ہیں ان میں اگر دونوں کا exchange of data ہے وہ same rate پے ہو تو buffer کی ضرورت نہیں تو وہ اپس میں کیسے connect ہوں گی basically direct connection ہوگا buffer کی ضرورت نہیں ہوگی ایک device جو ہے وہ information produce کر رہی ہے اور دوسی جو device ہے وہ information کو consume کر رہی ہے ان کی اپس میں جو data lines ہیں وہ اپس میں connected ہوں گی جو producing device ہے جو information کو produce کر رہی ہے اس کا right signal ہوگا basically وہ information لکھ رہی ہے that means وہ information data bus پے پھنک رہی ہے جو consumer device ہے وہ information کو consume کر رہی ہے یا read کر رہی ہے اس کا just control signal ہوگا وہ read پے ہوگا information جو بھی data bus پے ہوگی وہ read کر لے گا تو یہ دونوں جو devices ہیں دونوں same rate کے ساتھ information generate کر رہی ہیں consume کر رہی ہیں اس میں buffer کی ضرورت نہیں ہے آئی ان buffer کی concept کو سمشتے ہیں with the help of a few diagrams پہلے ہم دیکھیں گے دو devices جو کے same data rate پے information communicate کر رہیں اس کے بعد ہم diagram دیکھیں گے دو devices جو different data rates پے communicate کر رہیں جس کی وجہ سے ایک buffer کی ضرورت پڑھ رہی ہے اور تیسے دے ہم diagram میں دیکھیں گے ایک information کیسے لکھنی اور کیسے read کرنی اور جو buffer ہے اس میں کیا changes آئیں گے سو آئی دیکھیں پہلے diagram میں دو devices دکھائے گیں device a and device b جو کے دونوں ایک ہی data rate پے information کو transfer کر رہیں device a جو ہے information produce کر رہی ہے اور device b جو ہے وہ information کو consume کر رہی ہے دونوں ایک devices ایک data bus common data lines کے ساتھ connected ہیں device a جو ہے وہ right signal اس کا enable ہے so that means وہ information data bus پے لکھ رہی ہے device b کا جو read signal enable ہے so جو بھی information data bus پے ہوگی وہ پڑھ رہی ہے اس میں buffer کی ضرورت نہیں پڑھ رہے کیونکہ دونوں same data rate پے information interchange کر رہیں next آئے گاہم میں دو devices دکھائے گئیں device a اور دوسی device جو ہے device b ان کے درمیان ایک buffer دکھائے گیا ہے so basically device a جو ہے device b کے ساتھ جو communication کر رہے ہیں information کو exchange کر رہی ہے وہ same rate پہ نہیں ہے device a جو ہے ہو سکتا ہے slow ہو or device b fast ہو and device a fast ہو سکتی device b slow ہو سکتی ہے so device a جو ہے وہ data produce کر رہی ہے produce کر کے وہ buffer میں information کو لکھ رہی ہے this is then device b جو ہے وہ جب بھی information اس نے پڑھنی ہے تو وہ دیریکلی data bus سے نہیں پڑے گی وہ through the buffer پڑھے گی this a دیگرم میں buffer دکھائے گئے جس کی art locations and that means 8 data values to کر سکتے ہیں so location 0 سے location 7 location 0 جو ہے اس کو buffer input ہم کرنے اور جو location 7 ہے اس کو buffer output کرنے show میں جو producer device ہے وہ information 7 9 1 0 3 5 data values ہیں جو کی generate کرتی ہیں یہ information اسی sequence میں buffer میں لکھی چاہی گی اور اسی sequence میں جو consumer device ہے وہ اس کو پڑھے گی جیسے کہ دیگرم میں دکھائے گئے buffer output پہ 7 store ہوا ہے اس کی next location میں 9 اس کے بعد 1 اس کے بعد 0 اور اس کے بعد 3 next state پہ consumer device جو ہے 2 information byte جو ہے پڑھ لیتی that means 7 کو پڑھ لیا and 9 کو پڑھ لیا buffer میں 1 0 3 بچ گئے ہے 1 اور 0 3 جو ہے اس کو buffer کے output پہ shift کرنا ہے تاکہ next time جو consumer device ہے وہ information پڑھے تو buffer output پہ اس کو 1 ملے تیسی دیگرم میں buffer میں مزید content سے add کیے گئے ہیں جو producer device ہے وہ مزید data produce کر رہی ہے 5 6 1 2 یہ اسی sequence میں buffer میں add ہو گئے ہیں so buffer کے پرانے جو contents تھے وہ 1 0 3 پڑے ہوئے تھے اس کے بعد 4 new contents add کیے گئے ہیں 5 6 1 2 جسا کہ دکھائے گئے یہ contents جس sequence میں produce ہیں اسی sequence میں buffer میں add ہوئے اور یہ add جو ہے پرانے contents کے ساتھ ہوئے جو consumer device ہے وہ پہلے پرانے contents پڑے گئے اس کے بعد 3 جو پرانے contents پڑھ گئے اس کے بعد نئے 4 contents پڑے گئے ابھی ہم نے some diagrams دیکھیں first in first out اس کو کیوں کہا جاتا ہے diagram سے آپ کو اندازہ ہو گا basically جس sequence میں ہم information buffer میں ڈال رہے ہیں اسی sequence میں information کو پرانے so that means first in جو information ہوگی وہی first out ہوگی so first in first out basically اس sequence کو represent کر رہا ہے جس کے just sequence کے through ہم information کو write کر رہے ہیں اور read کر رہے ہیں اب ہی بات کر دیں implementation کی جسے کہ ہم نے بتایا تھا کہ یہ جو first in first out memory ہے یہ special type کی memory کیا لاتی ہے ایک تو اس کا reason یہ ہے کہ یہ نہ تو کو instructions اس سیس میں store کرے جسنا ram کرتے یہاں کچھ table permanently store نہیں کرے جسنا rom کرتی ہے basically temporary جگہ ہے اور just میں information store کی جاتی ہے due to the difference in the speeds of the two devices ایک جو طریقہ ہے وہ basically shift registers کی مدل سے ہم buffer کو implement کر سکتے ہیں اگر آپ کے پاس ایک آپ system digital system بنارہے ہیں کسی application کے لیے تو اس میں you cannot afford to have large memory memory basically بہت کم ہوتی ہے اس میں کیونکہ بہت کم instructions ہوتی ہیں اتھر اگر آپ نے buffer implement کرنا ہے تو وہ آپ basically shift registers کی مدل سے کریں گے basically اس کو سمجھ لیتے ہیں کہ shift registers کی مدل سے کیسے کریں گے let us assume کہ ایک device جو ہے وہ 4 bit value generate کر رہی ہے اور دوسی جو device ہے جو consumer device ہے وہ 4 bit values کو consume کر رہی ہے use کر رہی ہے so basically جو shift جو buffer ہے وہ 4 bit values کو store کرے let us assume کہ جو producer device ہے وہ 8 values produce کرتی ہے اور جو consumer device ہے وہ بھی 8 values تکیم and consume کر رہی ہے تو buffer کا جو size ہے وہ 8 x 4 ہنا چاہیے that means 8 locations ہونی چاہیے ہر location جو ہے 4 bit کو store کریں جیسے گے پشلے دیگام سے میں ہم نے دیکھا جب بھی آپ information buffer میں لکتے ہیں تو اس کو آپ نے shift کر کے بالکل buffer کے output پہ لکنا ہے جو پہلی information آپ نے لکھی وہ buffer کے output پہ ہوگی next information جو ہوگی next location پہ ہوگی and so on جو ہی آپ buffer کے output سے information پڑھ لیتے ہیں تو جو باقی بیچ میں information بچتی ہے اس کو shift کر کے again buffer کے output پہ لکی آنا ہے تاکہ پیچھے space وکیٹ ہو جائے اس میں مزید information آپ لکھ سکیں so shift registers جب ہونگے آپ کے پس 4 shift registers ہونگے ہر چو shift register ہے وہ 8 bit کا shift register ہے 4 اپس میں parallel connected ہیں so that means 4 bits at a time shift ہورہیں so in the beginning بسکلی جب پہلی value لکھیں گے shift 8 bit shift کرے گا تاکہ input سے let's say left side سے آپ add کرتے ہیں تو وہ value کمپلیٹلی shift ہوکے right پہ آجا ہے اس کے بعد next value جو آپ لکھیں گے again buffer input کو آپ assume کریں left side پہ ہے تو 7 shift کر کے اس کو second position پہ لے جائیں گے اسی تیسری value 6 shift کے بعد 3 position پہ and so on جب consumer device ہے وہ پہلی information پڑے گی buffer output سے تو جو باقی دو values ہیں ان کو 1 bit shift کرنا ہے towards right so basically آپ کے پاس 4 shift registers ہیں اور آپ کے پاس a shift control security چاہئے جو information کو shift right کرے گے depend کرتا ہے کہ آپ consume کر رہیں یا bduse کر رہیں اس shift register کے input پہ ایک latch ہونی چاہئے جہاں information latch ہوگی جب تاکہ یہ shift register میں store نہیں ہو جاتی اسی طرح in shift register کے output پہ ایک latch ہوگی جہاں پہ یہ information store ہو جائے گی جو buffer سے پڑھنا ہے جب تک your consumer device اس کو پڑھنا لے اس طرح مزید آپ کو control signals چاہئے ہیں جو کہ یہ بتائیں گے کہ اب information جو ہے buffer کے output پر ready ہے کہ نہیں ہے اسی طرح buffer کے input میں آپ مزید information لکھ سکتے ہیں کہ نہیں so let us have a look at the diagram جو اس پورے circuit کو describe کرنا diagram میں ایک fee for memory جو ہے first in first out memory دکھائے گئی جو کہ shift register کی مدل سے implement ہوئی ہے چار ایٹ پڑھ shift registers use کیاں basically یہ 4 bit value کو store کر رہے ہیں and 8 value store ہو سکتے ہیں in shift registers کے in 4 of shift register کے input پہ ایک input buffer دکھائے گئے basically ایک latch ہے جہاں جو incoming data ہے وہ temporarily store ہوتا ہے جب تک یہ shift register میں store نہ ہو جائے اسی طرح shift registers کے output پہ ایک output latch یا buffer دکھائے گئے جہاں پہ information store ہوگی or latch ہوگی جب تک consumer device اس انفارمیشن کو پڑھنا لے نیچے shift register control circuitry دکھائے گئے جو کہ اس میں count رکھے گئی کہ information کہاں پہ پڑھی ہوئی ہے اور کتنا بیٹھ سے shift write کرنی ہے اس دنہاں input control logic دکھائے گئے output control logic دکھائے گئے output control logic سے output ready کا signal generate ہو رہا ہے or input control logic سے input ready کا signal generate ہو رہا ہے so basically output control logic جو ہے output ready signal generate کرے گا inform the consumer device that a byte یا information جو ہے وہ ready ہے available ہے for reading اسی طرح جو input control logic کا input ready signal جو ہے وہ جو producer device ہے اس کو inform کرے گا کہ input buffer available ہے so如果 مزید information produce ہوئی ہے وہ buffer میں store کی جا سکتی ہے ابھی ہم نے diagram میں shift register کے implementation دیکھیں جس کی مدد سے ہم basically first in first out memory کو implement کر رہے ہیں یہ ہم نے بتایا اگر آپ کے پاس ایک dedicated application بھنا رہے ہیں ایک digital system دیزائن کیا ہے جو کے specific application کے لیے جا آپ کو large buffer نہیں چاہئے تو آپ shift register based buffer use کریں گے آپ کے computer system میں جیسے ہم نے بات کی تھی keyboard buffer ہے جس میں جو keys آپ punch کرتے ہیں ان کی information جو ہے وہ store ہو رہی ہوتی وہ basically in shift register کی مدد سے implement نہیں ہوتی جو buffer ہے وہ basically جو آپ کی ram ہے اس کا ایک portion ہم reserve کر لیتے ہیں اس کو ہم classify کر لیتے ہیں as a keyboard buffer جو ram ہے اس کو ہم use کر رہے ہیں basically اس ایریہ کو ہم access کرنے کے لیے ہمیں دو registers چاہئے ایک register کو ہیہیں گے buffer output register اور ایک register کا کہیں گے buffer input register so basically یہ دو registers ہے ان میں دو addresses پڑے ہوں گے وہ جو ہم نے جگان reserve کیای ram میں جس کم keyboard buffer کرنے اس کے output کو point کر رہے ہوں گے اس کے input کو point کر رہے ہوں گے so buffer کے contents vary کریں گے جونجو آپ انفارمیشن اس میں دالنے اور پڑھنے ہیں تو اس کے contents چینج ہو رہے ہیں اس کی locations بھی چینج ہو رہے ہیں so یہ جو دو registers ہیں ان کے contents جو ہیں وہ address ہوں گے وہ ہمیشہ دو locations میں point کر رہے ہوں گے buffer کی جہاں سے آپ data پڑھیں گے اور جہاں پہ آپ information لکھیں گے so basically دو گسم کی implementations ہے fee for memory کی ایک using shift registers دوسری جو computers میں use ہوتی وہ ram کو ہی use کیا جاتا ہے next جو ہم بات کریں گے last and first out memory basically یہ بھی ایک special purpose memory ہے اگر آپ a specific application کے لی implement کر رہے ہیں تو shift registers use کریں گے computer میں بھی last and first out memory use ہوتی in the form of a stack stack basically کیا ہے وہ آپ نے پڑھا ہوئے stack جو ہے again ایک جگہ ہم نے memory میں reserve کیوئے جس میں ہم variables store کرتے ہیں آپ کا program جب ہے کسی sub routine کو call کرتے ہیں تو variables pass ہوتے ہیں parameters pass ہوتے ہیں تو وہ information جو ہے کان store ہوتی stack میں stack میں جب آپ information ڈالتے ہیں تو کسی طرح پڑھتے ہیں basically جو first information گئی ہوتی وہ last میں پڑھتے ہیں کیونکہ stack کو آپ سمجھے کہ جسے plate ہیں کافی ساری وہ ایک دوسر کے اوپر رکھ رہے ہیں تو اگر آپ نے plate نکالنی تو سب سے bad والی plate جو سب سے اوپر پڑی اس کو سب سے پہلے پڑیں گے so last and first out last information جو گئی وہ پہلے پڑیں گے last and first out memory ہم دو طریقوں سے ملمن کر سکتے ہیں یہ دونوں طریقے ہم next lecture میں دسکس کریں گے next lecture تک اپنے خیال رکھیں گا انشاء اللہ دوبارہ ملیں گے خدا حفظ اسلام علیکم