Sarathy Jayakumar
Sarathy Jayakumar
  • Видео 22
  • Просмотров 374 573
Digital Logic: 1 - Intro to Binary
In the summer of 2018, I conducted a summer class for a few middle schools children going into 7th grade. It was on Digital Logic. I was truly amazed by the way the kids picked up the basics and kept pushing me to get into topics I didn't plan on. Their enthusiasm and ability to learn was truly astounding. We started off with the basics on Binary system and ended up building a full-adder circuit in a bread-board with discrete logic gates and 7-segment displays.
Просмотров: 1 330

Видео

Digital Logic: 8 - Boolean Algebra
Просмотров 895 лет назад
In the summer of 2018, I conducted a summer class for a few middle schools children going into 7th grade. It was on Digital Logic. I was truly amazed by the way the kids picked up the basics and kept pushing me to get into topics I didn't plan on. Their enthusiasm and ability to learn was truly astounding. We started off with the basics on Binary system and ended up building a full-adder circui...
Digital Logic: 3 - Intro to Gates
Просмотров 6415 лет назад
In the summer of 2018, I conducted a summer class for a few middle schools children going into 7th grade. It was on Digital Logic. I was truly amazed by the way the kids picked up the basics and kept pushing me to get into topics I didn't plan on. Their enthusiasm and ability to learn was truly astounding. We started off with the basics on Binary system and ended up building a full-adder circui...
Digital Logic: 9 - 2's Complement subtraction
Просмотров 1375 лет назад
In the summer of 2018, I conducted a summer class for a few middle schools children going into 7th grade. It was on Digital Logic. I was truly amazed by the way the kids picked up the basics and kept pushing me to get into topics I didn't plan on. Their enthusiasm and ability to learn was truly astounding. We started off with the basics on Binary system and ended up building a full-adder circui...
Digital Logic: 10 - Combined Adder and Subtractor
Просмотров 1375 лет назад
In the summer of 2018, I conducted a summer class for a few middle schools children going into 7th grade. It was on Digital Logic. I was truly amazed by the way the kids picked up the basics and kept pushing me to get into topics I didn't plan on. Their enthusiasm and ability to learn was truly astounding. We started off with the basics on Binary system and ended up building a full-adder circui...
Digital Logic: 4 - Experiment 2 and 4 way staircase switch and XOR logic
Просмотров 1985 лет назад
In the summer of 2018, I conducted a summer class for a few middle schools children going into 7th grade. It was on Digital Logic. I was truly amazed by the way the kids picked up the basics and kept pushing me to get into topics I didn't plan on. Their enthusiasm and ability to learn was truly astounding. We started off with the basics on Binary system and ended up building a full-adder circui...
Digital Logic: 2 - Intro to Hex
Просмотров 1695 лет назад
In the summer of 2018, I conducted a summer class for a few middle schools children going into 7th grade. It was on Digital Logic. I was truly amazed by the way the kids picked up the basics and kept pushing me to get into topics I didn't plan on. Their enthusiasm and ability to learn was truly astounding. We started off with the basics on Binary system and ended up building a full-adder circui...
Digital Logic: 7 - 4 bit adder circuit
Просмотров 9095 лет назад
In the summer of 2018, I conducted a summer class for a few middle schools children going into 7th grade. It was on Digital Logic. I was truly amazed by the way the kids picked up the basics and kept pushing me to get into topics I didn't plan on. Their enthusiasm and ability to learn was truly astounding. We started off with the basics on Binary system and ended up building a full-adder circui...
Digital Logic: 11 - 2 Bit Full Adder Built on a bread board
Просмотров 2,2 тыс.5 лет назад
In the summer of 2018, I conducted a summer class for a few middle schools children going into 7th grade. It was on Digital Logic. I was truly amazed by the way the kids picked up the basics and kept pushing me to get into topics I didn't plan on. Their enthusiasm and ability to learn was truly astounding. We started off with the basics on Binary system and ended up building a full-adder circui...
Digital Logic: 6 - Half and Full Adders
Просмотров 1745 лет назад
In the summer of 2018, I conducted a summer class for a few middle schools children going into 7th grade. It was on Digital Logic. I was truly amazed by the way the kids picked up the basics and kept pushing me to get into topics I didn't plan on. Their enthusiasm and ability to learn was truly astounding. We started off with the basics on Binary system and ended up building a full-adder circui...
Digital Logic: 5 - Exercises
Просмотров 895 лет назад
In the summer of 2018, I conducted a summer class for a few middle schools children going into 7th grade. It was on Digital Logic. I was truly amazed by the way the kids picked up the basics and kept pushing me to get into topics I didn't plan on. Their enthusiasm and ability to learn was truly astounding. We started off with the basics on Binary system and ended up building a full-adder circui...
System Architecture: 11 - BAR and Aperture example
Просмотров 18 тыс.7 лет назад
In this video we look at an example using R/W Utility on how to discover the requested MMIO size by the device and the Bridge/Root Port aperture is programmed for the MMIO range.
System Architecture: 10 - PCIe MMIO Resource Assignment
Просмотров 29 тыс.7 лет назад
In this video, we'll walk through how MMIO resources are assigned to PCIe devices.
System Architecture: 9 - MCFG Table and MMCFG based PCIe config access
Просмотров 18 тыс.7 лет назад
In this video, we'll walk through an example and discuss how to find the MCFG ACPI table, extract the MMCFG base address, and access PCIe config space registers using this mechanism.
System Architecture: 8 - Sample program for accessing config registers
Просмотров 15 тыс.7 лет назад
In this video, we'll use a small x86 ASM code to cycle through and discover all the devices under a PCI BUS, using CF8/CFC mechanism.
System Architecture: 7 - Accessing PCIe Config Registers
Просмотров 47 тыс.7 лет назад
System Architecture: 7 - Accessing PCIe Config Registers
System Architecture: 6 - PCI Basics and Bus Enumeration
Просмотров 113 тыс.7 лет назад
System Architecture: 6 - PCI Basics and Bus Enumeration
System Architecture: 5 - Transaction flows and address decoding part 2
Просмотров 13 тыс.7 лет назад
System Architecture: 5 - Transaction flows and address decoding part 2
System Architecture: 4 - Transaction flows and address decoding part 1
Просмотров 17 тыс.8 лет назад
System Architecture: 4 - Transaction flows and address decoding part 1
System Architecture: 3 - High Level Overview of the BOOT flow
Просмотров 17 тыс.9 лет назад
System Architecture: 3 - High Level Overview of the BOOT flow
System Architecture: 2 - Legacy Region
Просмотров 21 тыс.11 лет назад
System Architecture: 2 - Legacy Region
System Architecture: 1 - System Memory Map
Просмотров 61 тыс.11 лет назад
System Architecture: 1 - System Memory Map

Комментарии

  • @MrVybhava
    @MrVybhava 2 месяца назад

    One of the best videos to understand PCIE enumeration

  • @explorewithshaa
    @explorewithshaa 5 месяцев назад

    this series is gold !

  • @briancostello3238
    @briancostello3238 8 месяцев назад

    This is the best presentation I have found so far on this subject matter to date. Thanks for putting in the time to spread this knowledge!

  • @MrRamsampath
    @MrRamsampath 10 месяцев назад

    nice.video is mot clear .ca you please host again

  • @nats5886
    @nats5886 Год назад

    Very well explained!!! You explained the memory translation sequences in a simple and clear manner. Thanks a lot.

  • @saipraveenreddy1185
    @saipraveenreddy1185 Год назад

    great lecture

  • @المبرمج-د3ر
    @المبرمج-د3ر Год назад

    شكرا لك

  • @yogenderyadav523
    @yogenderyadav523 Год назад

    best explanation .

  • @gauravsinha3337
    @gauravsinha3337 Год назад

    Could you please also provide some insight into MMIO with SR-IOV and other dependency to have SR-IOV VFs configuration with virtual machine.

  • @gauravsinha3337
    @gauravsinha3337 Год назад

    It’s a very informative video. Thanks a lot.

  • @EvilSapphireR
    @EvilSapphireR Год назад

    Could you please explain how you set up the DOS Code debugging? Are you simply logged on to the "usermode" of DOS and it lets you directly access BIOS level constructs? Or did you set up something in between? Would love to know if this can be done in some way with modern OSs as well!

  • @EvilSapphireR
    @EvilSapphireR Год назад

    How does the port mapped I/O requests (via the In/OUT instructions) reach the PCI config registers in the first place? Do the motherboard vendor solder the buses coming out of the CPU into the system agent in such a way that this would always be the case (possibly following the PCI/PCIe specification?) ?

    • @yoav_1867
      @yoav_1867 2 месяца назад

      how are you doing, I remember you from the OST1 OG class. might be a lil too late to answer. Anyways, I asked the same question when I learned this and these are the conclusions I came up with: on a x86 system, the system itself is built on a pci "backbone". so every access to peripheral is done via pci communication first, whether directly communicating to a pci device or regular device (via a controller which is just a piece of hardware in the pch that knows how to communicates with the bus interface etc. but is ultimately pci function or really just a pci device itself). so with that in mind, there should be a pci bus protocol to communicate with everything on the system because everything is built on pci/e device chain. so what actually happens is when the system agent gets a request from the cpu to talk to a peripheral it creates a pci transaction (which is part of the protocol). if you look up the pcie transaction types you will see MMIO R/W transaction, Port IO R/W transaction, but more importantly Configuration W/R transaction. so I think what happens is when the system agent gets a port IO requests but with CFC and CF8 ports for configurations it just creates configuration transactions which the devices can understand (they built that way) instead of regular port IO transactions.

  • @EvilSapphireR
    @EvilSapphireR Год назад

    In case of PCI (could be PCIe as well, I haven't studied that far), the BIOS directly accesses the PCI BARs directly via port mapped I/O and sets them up with proper values to map different memory/I/O chips to different ranges in the system address map. But how does this port map I/O BAR access happen in the first place? Is the address bus soldered on the motherboard to connect to the PCI chipset in such a way that specific port mapped I/O access request always reach these BARs (according to the PCI specification)?

  • @newsgo1876
    @newsgo1876 Год назад

    Really hope this great series could continue. It's a treasure.

  • @newsgo1876
    @newsgo1876 Год назад

    It's really helpful to see with my own eyes. Thank you sir!

  • @newsgo1876
    @newsgo1876 Год назад

    In the eye of a CPU core, the world is just a bunch of addresses, be it memory or IO addresses. Just like a Turing machine viewing the boxes on a paper tape. It is BIOS' responsibility to properly program all the system agents and downstream decoders on the platform to route the transaction targeting a certain address to the right destination. Be it DRAM, PCI-E endpoint device, etc.

    • @EvilSapphireR
      @EvilSapphireR Год назад

      In case of PCI (could be PCIe as well, I haven't studied that far), the BIOS directly accesses the PCI BARs directly via port mapped I/O and sets them up with proper values to map different memory/I/O chips to different ranges in the system address map. But how does this port map I/O BAR access happen in the first place? Is the address bus soldered on the motherboard to connect to the PCI chipset in such a way that specific port mapped I/O access request always reach these BARs (according to the PCI specification)?

    • @newsgo1876
      @newsgo1876 Год назад

      @@EvilSapphireR It's the platform's responsibility to provide a means for software to communicate the B/D/F offset info to the silicon. As a programmer, you should focus more on what you want to convey to the platform rather than how you convey that info to the platform. Because the how varies across platforms. I remember there's a section in PCIe spec addressing the "software generation of configuration transaction". Take a look at that.

  • @santoshsco
    @santoshsco Год назад

    This is a superb explanation on memory mapped i/o , always go through this series for quick refresher on system side topics .

  • @dbharathi2003
    @dbharathi2003 Год назад

    Awesome & great explanation

  • @ms6063
    @ms6063 2 года назад

    clear !! nandri

  • @bmos64b87
    @bmos64b87 2 года назад

    Hello Sarathy, are you able to help me out with the full breakdown of MCFG Table please ?, I am unable to locate any manual after scouring online for days. Thank you so much.

  • @virupakshic.m2918
    @virupakshic.m2918 2 года назад

    Sir quick question - When we power ON, the execution starts at FFFF FFF0h (4GB-16) bytes but the CPU will operate in real mode where it can access 16bit address space then how it can access FFFF FFF0h which is 32bit address space?

    • @shubham_k
      @shubham_k 2 года назад

      For 16 bit CPUs, the reset vector is FFF0.

  • @Mr_ST_720
    @Mr_ST_720 2 года назад

    Thanks so much sir from Maharashtra

  • @pavandn
    @pavandn 2 года назад

    Excellent explanation. I was trying to dig through so many books and info but was unable to get the exact info I needed. But your videos provided most of the info I needed.

  • @belaamg
    @belaamg 2 года назад

    Best video ever, so clear

  • @argaz3
    @argaz3 2 года назад

    Thank you so much for this comprehensive series. The knowledge of those topics is spread over lots of sources and specifications so it's very convenient that you managed to summarize it in this series, that was an awesome contribution!

  • @dhineshsasidaran4310
    @dhineshsasidaran4310 2 года назад

    DMI = Direct Media Interface

  • @vinayakgujjar9655
    @vinayakgujjar9655 2 года назад

    Thank you for your efforts in making this video. It helped.

  • @atulct
    @atulct 3 года назад

    Excellent Knowledge sharing videos. This is great knowledge Sarathy that you have gathered and now sharing with everyone.

  • @dhanasekaranvenugopal7125
    @dhanasekaranvenugopal7125 3 года назад

    Thanks and appreciate the knowledge shared in a clear and concise way. This series is a great resource to get started with a clear understanding of the enumeration of PCIe devices.

  • @santoshsco
    @santoshsco 3 года назад

    loving the videos keep up the good work . Got clear idea on computer architecture

  • @santoshsco
    @santoshsco 3 года назад

    Thanks sarath for the detailed description of POST operation in the system .

  • @santoshsco
    @santoshsco 3 года назад

    excellent explanation

  • @anandbb1
    @anandbb1 3 года назад

    Clear & Simple explanation. Than you @Sarathy Jaykumar!

  • @Lovertube1987
    @Lovertube1987 3 года назад

    is this flow also Includes POST?

  • @neerajvishwakarma9021
    @neerajvishwakarma9021 3 года назад

    Very good explanation to understand the basics of config space handling in PCIe

  • @CD-dm7sf
    @CD-dm7sf 3 года назад

    Re. writing (0xFFFF_FFFF) and reading back the BAR to figure out the size of the (memory) region the device requests to be mapped to system address space, note the following with the example of the device requesting 4KB space (4096 bytes) 1.Lower 4 bits of the BAR are read only, i.e. each BAR is 32 bit , out of which first 4 bit 3:0 are always Read Only. 2. It would be wise to save the BAR value before writing to it. 3. Write 0xFFFF_FFFF & read it back, value read = 0xffff_f00X 4. Clear the last 4 bits - they are read-only, typically will be read back as 0's after step (3), value read = 0xffff_f000 5. Invert the value in (4) and add 1: value = 0xfff + 1 = 0x1000 = 4096 Due to the nature of the above mechanism, the min space the system allocates to device memory will be 16 bytes - corresponding to the 0's in bits[3:0] i.e. if for some reason the device requests anything less than 16 bytes, it will still be allocated 16 bytes in the system address map. Practically this hardly happens given that modern systems with 32-bit registers & addressing in place; but good to be aware of if one runs into a resource constrained scenario

  • @IamBananas007
    @IamBananas007 3 года назад

    a great series! I would watch a dozen more of these in a heartbeat! if you have them recorded, please release them :)

  • @thangam1096
    @thangam1096 3 года назад

    I got a doubt Enumeration will done in GEN1 L0 or at max data rate if it supports?

  • @Xyliant
    @Xyliant 3 года назад

    Is there a book detailing more information on this subject that you learned from? Where did you get this information from? Like the video by the way, very detailed and conveyed in a manner everyone can understand!

  • @thangam1096
    @thangam1096 4 года назад

    I got a doubt why Type 0 config space has 6 BARS and Type 1 has 2 BARS

  • @ΝικόλαοςΜελάς-π2γ
    @ΝικόλαοςΜελάς-π2γ 4 года назад

    Nice and clear explanations from an excellent engineer. Thank you :-)

  • @cutepriyanshi29
    @cutepriyanshi29 4 года назад

    great series.. Thank you so much

  • @smwikipediasmwikipedia5762
    @smwikipediasmwikipedia5762 4 года назад

    Finally I understand the logic of MMIO. THANKS!

  • @smwikipediasmwikipedia5762
    @smwikipediasmwikipedia5762 4 года назад

    This is so precious. Please CONTINUE! THANKS!

  • @smwikipediasmwikipedia5762
    @smwikipediasmwikipedia5762 4 года назад

    It is a such a good deed.

  • @govindsurti7591
    @govindsurti7591 4 года назад

    This is a very good PCI refresher series! You mentioned that the root port stores the range of MMIO addresses assigned to downstream devices. During BIOS, the enumeration process can make sure that all downstream devices get consecutive MMIO spaces assigned. The range values in the root port can be accurately programmed. What happens if at a later stage, one of the downstream devices is removed and another one, which requires significantly more MMIO space, is hot-plugged in? The MMIO space assigned to this new device might not be adjacent to other sibling device. How does the root port store the (now fragmented) range?

  • @shawnkim9317
    @shawnkim9317 4 года назад

    plz continue this series

  • @ram3258
    @ram3258 4 года назад

    thanks for good video

  • @amarnathbaliyase7665
    @amarnathbaliyase7665 4 года назад

    Any source for PCIe code understanding?

  • @SearchingPeaceInside
    @SearchingPeaceInside 4 года назад

    Excellent videos