موضوع : تحقیق پردازش در کامپیوتر
كنترلر USB بايد بافرهايي براي ذخيره دادههايي كه دريافت ميكند يا دادههايي كه آماده فرستادن روي باس هستند داشته باشد بعضي از تراشهها مانند NET2888 محصول NetChip از رجيسترهاي به عنوان بافر استفاده ميشكند در حالي كه برخي ديگر از جمله EZ-USB شركت سيپرس از بخشي از حافظه داده به عنوان بافر بهره ميبرند
رجيسترهايي كه دادههاي رسيده يا منتقل شده را نگهداري ميكنند عموماً داراي ساختار FIFO اولين ورودي اولين خروجي هستند در هر خواندن از يك FIFO بايتي كه بيشتر از همه در حافظه بوده است بازگردانده ميشود با هر نوشتن به روي FIFO بايت بعد از همه بايتهايي كه در FIFO محلي را كه داده بعدي در ن قرار دارد نشان ميدهد
در تراشههاي ديگر مثل سري enCore شركت سيپرس بافرهاي USB در حافظه داده جاسازي شدهاند و برنامه تراشه هر موقعيت را براي نوشتن يا خواندن از آن انتخاب ميكند و اشارهگري كه به طور خودكار افزايش يابد تا محل دادة بعدي را مشخص كند وجود ندارد بايتهاي درون بافر فرستنده USB از پايينترين آدرس به بالاترين آدرس نوشته ميشوند و بايتهاي بافر دريافت به ترتيب رسيدن از پايينترين آدرس به بالاترين آدرس ذخيره ميگردند اين بافرها ساختار FIFO ندارند ولي گاهي با اين نام خوانده ميشوند
براي ايجاد انتقالهاي سريعتر بعضي از تراشهها دو بافر دارند و قادرند دو مجموعه كامل داده در هر جهت را ذخيره كنند در حالي كه يك بلاك داده انتقال مي يابد برنامه تراشه ميتواند بلاك داده بعدي را به بافر ديگر بنويسد به طوري كه اين بلاك تا وقتي كه بلاك اول فرستاده ميشود آماده انتقال ميگردد در جهت دريافت نيز بافر اضافي ما را قادر ميسازد قبل از كامل شدن پردازش داده بر روي ترنزكشن قبلي توسط برنامه تراشه ترنزكشن بعدي دريافت شود سختافزار به صورت خودكار بين اين دو بافر سئويچ ميكند
واحد پردازش مركزي CPU يك تراشه كنترلي USB با اجراي دستورات كدهايي كه در تراشه ذخيره شده است فعاليتهايي تراشه را كنترل ميكند هر CPU از مجموعه دستوراتي پشتيباني ميكند كه شامل دستورات زبان ماشين براي انتقال داده انجام عملوندهاي منطقي و پرشهاي برنامه مي باشند اين مجموعه دستورات همچنين CPU را قادر ميسازد كه با SIE ارتباط برقرار كند CPU ممكن است ساختاري بر اساس يك ميكروكنترلر عمومي مانند 8051 داشته باشد يا اينكه فقط به صورت ويژه براي استفاده در دستگاههاي USB طراحي شده باشد
تراشههايي كه cpu ندارند ممكن است مجموعه دستوراتي وابسته به ارتباطهاي USB داشته باشند يا فقط از يك سري رجيستر براي ذخيره دادههاي USB و اطلاعات پيكربندي استفاده كنند اين تراشهها مسيري را براي اضافه كردن قابليتهاي USB به هر ميكروكنترلر خارجي ايجاد مي كنند