|
به نظر می رسد که شما عضو سایت نیستید و یا وارد نشده اید, امکان ارسال مطلب و دانلود فایل و همچنین دسترسی به انجمن هایی که فقط اعضا ثبت نام شده امکان دسترسی به آن را دارند از امتیازات ثبت نام در سایت میباشد. لطفا از طریق این لینک برای ثبت نام اقدام نمایید. |
|
| جدیدترین موضوعات انجمنها | |
|
|
||||||||
![]() |
|
|
LinkBack | ابزارهای موضوع | نحوه نمایش |
|
|
#1 | |||||||||
|
كاربر فعال
![]() تاریخ عضویت: Apr 2010 محل سکونت: Isfahan نوشتهها: 102
تشكرها: 91
54 بار تشكر شده در 27 پست
درجه: 9 [ ]سابقه: 0 / 202 ![]() |
سلام!
وقتی گفته میشه ramمیکرویی مثله mega8 یک کیلو بایته منظور اینه که در یک دستور یا شرط یا... نباید بیشتر از این مقدار داده پردازش بشه؟ یا اینکه درثانیه؟ یا...؟ اصلا منظور چیه؟ |
|||||||||
|
|
|
| اين کاربران از siavash esteki به خاطر این مطلب مفید تشکر کرده اند |
|
|
#2 | |||||||||
|
مدير ارشد
![]() تاریخ عضویت: Dec 2009 محل سکونت: اصفهان نوشتهها: 186
تشكرها: 75
265 بار تشكر شده در 112 پست
درجه: 12 [ ![]() ![]() ]سابقه: 0 / 292 ![]() |
حافظه ی SRAM مخفف Static RAM هستش و اگه در موردش بخای بیشتر بدونین اینه که بهش میگن استاتیک چون اطلاعاتش تا زمانی که برق بهش وصله ثابت می مونه و از بین نمیره.
مدل دیگه ای از ram ها دینامیک هستن(DRAM) که اونا در حین گذشت زمان اطلاعاطشون آروم آروم از بین میره و برای اینکه اطلاعاتشون از بین نره باید تازه سازی بشن(Refresh).از این مدل رم ها در کامپیوتر های معمولی استفاده میشه و خیلی ارزان قیمت هم هستن فضای کمتری رو هم اشغال می کنن. تفاوت اصلی این دو در ساختارشونه! دینامیک رو با یک خازن و یک ترانزیستور می سازن ولی استاتیک رو با شش تا ترانزیستور !!! به همین خاطر استاتیک گرونه ، جای بیشتری می گیره و ... دینامیک هم که معلومه چون داخلش خازن هست باید تازه سازی بشه وگرنه خالی میشه و اطلاعات از بین میره. خوب حالا برسیم به این که رم در میکرو به چه دردی می خوره. کلا رم فضایی که پردازشگر از فضای اون برای محاسبات استفاده می کنه پس در واقع محل وجود متغیرهای برنامه رم خواهد بود. حالا متغیر هایی که در main تعریف می کنیم یا Globalهستن همیشه در رم می مونن و فضای اون رو اشغال می کنن ولی متغیرهایی که در توابع تعریف میشن فقط تا زمانی که اون تابع داره اجرا میشه در رم می مونن و بعد از اتمام کار تابع فضایی رو که اشغال کرده بودن آزاد می کنن. این یکی از مزیت های بسیار مهم کد نویسی با c هستش که فضای رم رو می تونه در صورت عدم استفاده آزاد کنه. خوب این فضا هم محدودیت داره و در هر میکرویی فرق داره و بعضی از میکرو هارو میشه بهشون رم اضافی از بیرون اضافه کرد. دیگه چی می خوای بدونی؟!
__________________
_-_-_-_-_-_-_-_-_-_-_-_-_- ذکات علم ... --------------------------------- موفق باشین ... |
|||||||||
|
|
|
| 4 کاربر از Kooshan به خاطر این مطلب مفید تشکر کرده اند |
|
|
#3 | |||||||||
|
كاربر فعال
![]() تاریخ عضویت: Apr 2010 محل سکونت: Isfahan نوشتهها: 102
تشكرها: 91
54 بار تشكر شده در 27 پست
درجه: 9 [ ]سابقه: 0 / 202 ![]() |
یعنی یه متغیر از نوع int مقدار 16 بیت از ram رو اشغال میکنه؟ یا این که فضای اشغالی بسته به مقدار متغیره؟(مثلا int a=0 < int a=65535) اگه میشه یه توضیحی درباره ی این که 6تا ترانزیستور چطوری داده ذخیره میکنند، بدین؟ |
|||||||||
|
|
|
|
|
#4 | |||||||||
|
مدير ارشد
![]() تاریخ عضویت: Dec 2009 محل سکونت: اصفهان نوشتهها: 186
تشكرها: 75
265 بار تشكر شده در 112 پست
درجه: 12 [ ![]() ![]() ]سابقه: 0 / 292 ![]() |
بله یک int ساده که 16 بیتیه 16 خانه ی حافظه رو اشغال میکنه
اینم شماتیک SRAM: حالشو نداشتم ترجمش کنم ... SRAM operation A SRAM cell has three different states it can be in: standby where the circuit is idle, reading when the data has been requested and writing when updating the contents. The SRAM to operate in read mode and write mode should have "readeability" and "write stability" respectively. The three different states work as follows: [] Standby If the word line is not asserted, the access transistors M5 and M6 disconnect the cell from the bit lines. The two cross coupled inverters formed by M1 – M4 will continue to reinforce each other as long as they are connected to the supply. [] Reading Assume that the content of the memory is a 1, stored at Q. The read cycle is started by precharging both the bit lines to a logical 1, then asserting the word line WL, enabling both the access transistors. The second step occurs when the values stored in Q and Q are transferred to the bit lines by leaving BL at its precharged value and discharging BL through M1 and M5 to a logical 0. On the BL side, the transistors M4 and M6 pull the bit line toward VDD, a logical 1. If the content of the memory was a 0, the opposite would happen and BL would be pulled toward 1 and BL toward 0. Then these BL and BL-bar will have a small difference of delta between them and then these lines reach a sense amplifier, which will sense which line has higher voltage and thus will tell whether there was 1 stored or 0. The higher the sensitivity of sense amplifier, the faster the speed of read operation is. [] Writing The start of a write cycle begins by applying the value to be written to the bit lines. If we wish to write a 0, we would apply a 0 to the bit lines, i.e. setting BL to 1 and BL to 0. This is similar to applying a reset pulse to a SR-latch, which causes the flip flop to change state. A 1 is written by inverting the values of the bit lines. WL is then asserted and the value that is to be stored is latched in. Note that the reason this works is that the bit line input-drivers are designed to be much stronger than the relatively weak transistors in the cell itself, so that they can easily override the previous state of the cross-coupled inverters. Careful sizing of the transistors in an SRAM cell is needed to ensure proper operation. [] Bus behavior A RAM memory with an access time of 70 ns will output valid data within 70 ns from the time that the address lines are valid. But the data will remain for a hold time as well (5-10 ns). Rise and fall times also influence valid timeslots with approximately ~5 ns. By reading the lower part of an address range bits in sequence (page cycle) one can read with significantly shorter access time (30 ns). [7]
__________________
_-_-_-_-_-_-_-_-_-_-_-_-_- ذکات علم ... --------------------------------- موفق باشین ... |
|||||||||
|
|
|
| 4 کاربر از Kooshan به خاطر این مطلب مفید تشکر کرده اند |
|
|
#5 | |||||||||
|
كاربر فعال
![]() تاریخ عضویت: Apr 2010 محل سکونت: Isfahan نوشتهها: 102
تشكرها: 91
54 بار تشكر شده در 27 پست
درجه: 9 [ ]سابقه: 0 / 202 ![]() |
یعنی وقتی متغیری global ویا تو main تعریف میشه،هم رمو و هم حافظه ی flash رو اشغال میکنه؟
|
|||||||||
|
|
|
|
|
#6 | |||||||||
|
مدير كل سايت
![]() تاریخ عضویت: Jan 2009 محل سکونت: نصف جهان نوشتهها: 501
تشكرها: 393
754 بار تشكر شده در 302 پست
درجه: 20 [ ![]() ![]() ![]() ]سابقه: 0 / 491 ![]() |
تعريف يك متغير 16 بيتي مانند int از فضاي flash اين مقدار را اشغال نمي كند.
در هنگام تعريف متغير فضاي كامل براي ان رزرو مي شود، مثلا اگر در يك متغير int چه 1 بريزيد چه 10000هيچ فرقي در گرفتن حافظه نمي كند. به همين علت است كه توصيه مي شود در هنگام تعريف متغيرها توجه داشته باشيد كه از چه نوع داده اي استفاده مي كنيد.
__________________
خدایا... می خواهم آنگونه زنده ام نگه داری که نشکند دلی از زنده بودنم و آنگونه مرا بمیرانی که کسی به وجد نیاید ازنبودنم خدایا ... به من زیستنی عطا کن که در لحظه مرگ، بر بی ثمری لحظه ای که برای زیستن گذشته است، حسرت نخورم و مُردنی عطا کن که، بر بیهودگیش، سوگوار نباشم. بگذار تا آن را، خود انتخاب کنم، اما آنچنان که تو دوست می داری ... ------------------------------------------------- برای تشکر فقط از دکمه استفاده کنیدبا سپاس |
|||||||||
|
|
|
| 3 کاربر از Razavi به خاطر این مطلب مفید تشکر کرده اند |
|
|
#7 | |||||||||
|
كاربر فعال
![]() تاریخ عضویت: Apr 2010 محل سکونت: Isfahan نوشتهها: 102
تشكرها: 91
54 بار تشكر شده در 27 پست
درجه: 9 [ ]سابقه: 0 / 202 ![]() |
اگه متغیری به صورت eeprom ودر تابع main تعریف بشه بازم دائم تو ram میمونه؟
وطبق گفته های آقای کوشان(حضوری)که هربار خوندن یا نوشتن روی eeprom چهار میلی ثانیه طول میکشه پس اگه دائم بخواد تو ram بمونه که پدر میکرو در میاد!!!!!!! ویرایش توسط siavash esteki : 03-19-2011 در ساعت 11:40 PM. دلیل: غلط املایی |
|||||||||
|
|
|
|
|
#8 | |||||||||
|
مدير ارشد
![]() تاریخ عضویت: Dec 2009 محل سکونت: اصفهان نوشتهها: 186
تشكرها: 75
265 بار تشكر شده در 112 پست
درجه: 12 [ ![]() ![]() ]سابقه: 0 / 292 ![]() |
مجید دلبندم!
اگه Globalباشه یا تو main باشه همیشه می مونه ولی وقتی Local باشه فقط در زمان نیاز فضا میگیره اگه eeprom باشه که پرفسور دیگه رو رم نیست مگه اینکه بیاریش رو رم خودت! اگه هم اولش flash بزاری میره رو فلش و دیگه خود میکرو نمی تونه مقدارشو عوض کنه میشه ثابت(Constant) افتاد!؟
__________________
_-_-_-_-_-_-_-_-_-_-_-_-_- ذکات علم ... --------------------------------- موفق باشین ... |
|||||||||
|
|
|
| 2 کاربر از Kooshan به خاطر این مطلب مفید تشکر کرده اند |
|
|
#9 | |||||||||
|
كاربر فعال
![]() تاریخ عضویت: Apr 2010 محل سکونت: Isfahan نوشتهها: 102
تشكرها: 91
54 بار تشكر شده در 27 پست
درجه: 9 [ ]سابقه: 0 / 202 ![]() |
من گیج شدم!!!!!!!!!!!!!
پس اگه تعریف کنی که متغیر تو eepromباشه،حتی اگه Globalم باشه تو ram نمیمونه؛ درسته؟
__________________
دو کس رنج بیهوده برند و سعی بی فایده کردند:یکی آنکه اندوخت ونخورد و دیگر آنکه آموخت و نکرد. علم چندانکه بیشتر خوانی نه محقق بود نه دانشمند آن تهی مغز را چه علم و خبر |
|||||||||
|
|
|
|
|
#10 | |||||||||
|
مدير ارشد
![]() تاریخ عضویت: Dec 2009 محل سکونت: اصفهان نوشتهها: 186
تشكرها: 75
265 بار تشكر شده در 112 پست
درجه: 12 [ ![]() ![]() ]سابقه: 0 / 292 ![]() |
متغیر EEPROM که رو EEPROM ایجاد میشه ، چیکار به RAM داره!
ولی معمولا (همیشه) متغیر EEPROM رو Global تعریف می کنن.
__________________
_-_-_-_-_-_-_-_-_-_-_-_-_- ذکات علم ... --------------------------------- موفق باشین ... |
|||||||||
|
|
|
| اين کاربران از Kooshan به خاطر این مطلب مفید تشکر کرده اند |
![]() |
| علاقه مندی ها (Bookmarks) |
| ابزارهای موضوع | |
| نحوه نمایش | |
|